应用程序 - 一个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值。
答案 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);
}
}