我已经在用户要填写的表单中有很多文本框,并且我想检查用户的输入是否存在于数据库中。类似于某些网站在输入时检查用户名的方式。如果后者的用户名存在于数据库中,则会将其标记为绿色或带有复选框。效率和性能要求
在我的情况下,用户必须填写整个表格,其中每个文本框表示表格中的不同列。检查数据库中是否存在值的最佳方法是什么?它必须是最快的方法,因为我不能拖延。
这是我想采用的方法:
用户开始输入数据之前,SQL查询将在数据库中进行检索表中的所有记录(一个简单的SELECT * FROM table
)。接下来,这将被保存在DataTable
。
当用户完成在文本框中输入文本(即相应文本框没有聚焦)时,将检查表单中的所有文本框以查看它们的输入存在于数据库中。这将通过针对每个文本框针对DataTable运行LINQ
语句来查看该值是否包含在DataTable中。
此方法是否有效?我希望它尽可能快,任何滞后都是不能容忍的。
感谢您的意见。不幸的是,行的数量是在运行时确定的,因此可能会有非常大量的行或小的行。该软件可以用于任何数据库。 – 2013-02-20 09:38:47
@DotNET:请参阅更新。 – 2013-02-20 09:42:04
不幸的是,第一步是不可能的,因为应用程序不应该能够修改数据库,但只能从它们“读取”。第二种方法很好,但我怎么去实现哪些文本框已经改变?为了给问题添加更多的上下文,可以有无限量的文本框,因为用户可以随意添加这些文本框。所以情况比标准表格复杂一点 – 2013-02-20 09:45:07