如何从使用文本框获取表名

时间:2014-04-04 23:11:06

标签: c# sql

是否可以使用文本框作为参考进行select查询。

有些人喜欢:

SELECT modeltype FROM txt_model.text

文本框中的值显示是表的名称。

2 个答案:

答案 0 :(得分:1)

你可以按照描述去做,但这是一个坏主意。我建议使用以下代码 - 它是安全的并具有相同的UI:

                          // add your table names to the list below
List<string> validTables = New List<string>() {"users", "addr", "events" }; 

if (validTables.IndexOf(txt_model.text.ToLower()) > 0)
{
     // use "SELECT modeltype FROM "+txt_model.text to perform work
}
else
{
     // error code
}

可能需要动态的validTable列表。在这种情况下,您可以获取结果(以SQL Server为例):

SELELCT TABLE_NAME 
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_TYPE = 'BASE TABLE'

并将其放在validTables列表中。

或者您可以将该选择的结果放在下拉列表中。

答案 1 :(得分:0)

构建查询字符串的一种方法:

string sql = string.Format("Select modeltype From {0}", txt_model.Text);
// ...
SqlCommand cmd = new SqlCommand(sql);