我有一个表 TümEnvanter$
,它有 2 列设备代码( Ekipman
)和它们的描述( Tanım
)。
用户从组合框中选择设备,我希望所选设备的描述出现在他们从组合框中选择时的标签中。
这是我尝试过的:
SqlCommand cmdTanim = new SqlCommand("select Tanım from TümEnvanter$ where Ekipman = '" + comboBox_ekipman.Text + "'", connect);
connect.Open();
SqlDataReader reader = cmdTanim.ExecuteReader();
string tanim = reader.ToString();
labelTanim.Text = "Ekipman Tanımı: "+tanim+" ";
当我使用此代码时,我进入了标签:
Ekipman Tanımı: System.Data.SqlClient.SqlDataReader
我怎样才能解决这个问题?谢谢你。
最佳答案
如果您只期望一个值,那么 ExecuteScalar
比使用阅读器简单得多,即
labelTanim.Text = Convert.ToString(cmdTanim.ExecuteScalar());
一般来说,也许可以考虑像“Dapper”这样的工具,即使在多行情况下也可以使这变得简单,并且可以轻松解决 SQL 注入(inject)问题:
string s = connect.QuerySingle<string>(
"select Tanım from TümEnvanter$ where Ekipman = @val", // command
new { val = comboBox_ekipman.Text }); // parameters