我有一个SQL Server本地数据库文件。来自C#。我想用从SQL获得的字符串值填充我的控件label2
(SQL语句称为string
)。
我的表是:
ID Task
我该怎么做?这就是我所拥有的,但它没有用。
private void ctn_Click(object sender, EventArgs e)
{
//Connection String ==> Lokale SQL-Server-Datei (MDF)
string str = @"Data Source = (LocalDB)\MSSQLLocalDB;
AttachDbFilename=|DataDirectory|\Spiel.mdf;
Integrated Security=True;
Connect Timeout=30";
//SQL Anweisung
string sql = "SELECT Aufgabe FROM WHERE ID = 1" ;
using (SqlConnection conn = new SqlConnection(str))
try
{
conn.Open();
using (SqlCommand command = new SqlCommand(sql, conn))
{
SqlDataReader reader = command.ExecuteReader();
while (reader.Read())
{
string name = reader[0] as String;
break;
}
label2.Text = Name;
}
conn.Close();
}
catch
{
MessageBox.Show("Keine Verbindung");
}
答案 0 :(得分:0)
您似乎根本就没有使用您阅读的name
。考虑:
string name = null;
using(var reader = command.ExecuteReader())
{
while (reader.Read())
{
name = reader[0] as String;
break;
}
}
label2.Text = name;
这使用我们从读者那里消费的名称。
或者,我强烈推荐Dapper这样的代码(discosure:我有偏见,但是:它是免费的!)。然后这就变成了:
label2.Text = connection.QuerySingle<string>(sql);
(加上Dapper使得正确使用参数,将数据加载到对象等方面变得微不足道;哎呀,如果你不想,你甚至不需要Open()
连接 - Dapper明白你的意思)