从SQL读取到textblock

时间:2012-08-14 14:36:35

标签: c# sql wpf

应用程序 - 一个TextBlock,一个Button。 + SQL数据库 - 一个表。 我正在尝试从sql读取文本块,当我单击按钮时,但它不起作用。

private void nextButton_Click(object sender, RoutedEventArgs e)
    {
        GetSqlData();
    }

    private void GetSqlData()
    {
        string connectionString = @"Data Source=Jama-Dharma\sqlexpress;Initial Catalog=Cars;Integrated Security=True";
        SqlConnection sqlConnection = new SqlConnection(connectionString);

        using (sqlConnection)
        {
            string sqlQuery = @"SELECT c.Name FROM CarsCatalog c";
            SqlCommand sqlCommand = new SqlCommand(sqlQuery, sqlConnection);

            sqlConnection.Open();

            SqlDataReader sqlReader = sqlCommand.ExecuteReader();

            while (sqlReader.Read())
            {
                nameTextBlock.Text = sqlReader.GetString(0);
            }

            sqlConnection.Close();
        }
    }

如何点击按钮,从SQL获取下一个ID值。

2 个答案:

答案 0 :(得分:1)

从快速浏览一下,看起来你的while循环只会覆盖文本块。退出循环后更新文本块文本。尝试像

这样的东西
 var sb = new StringBuilder();
 while (sqlReader.Read())
 {
     sb.AppendLine(sqlReader.GetString(0));
 }

 nameTextBlock.Text = sb.ToString();

答案 1 :(得分:0)

您可以保存到目前为止的最后一个ID,并获得大于此保存ID的下一个ID。 e.g:

    using (var sqlConnection = new SqlConnection(...))
    {
        string sqlQuery = @"SELECT c.Name,c.ID FROM CarsCatalog c where c.ID > " 
                            + lastID.ToString();
        SqlCommand sqlCommand = new SqlCommand(sqlQuery, sqlConnection);

        sqlConnection.Open();

        SqlDataReader sqlReader = sqlCommand.ExecuteReader();

        if (sqlReader.Read())
        {
            nameTextBlock.Text = sqlReader.GetString(0);
            lastID = sqlReader.GetInt(1);
        }
    }