从SQL查询填充控件的Text

时间:2018-04-17 15:47:35

标签: c# sql sql-server

我有一个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");

        }

1 个答案:

答案 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明白你的意思)