我正在尝试创建它,以便在按下按钮时,它会从文本框中读取ID,然后将SQL数据库中的选定数据放入一系列文本框中。
这是我目前的代码:
private void button1_Click(object sender, EventArgs e)
{
SqlCommand command =
new SqlCommand("select * from Personal_Details WHERE PersonID= " +
personIDTextBox, sqlConnection1);
sqlConnection1.Open();
SqlDataReader read = command.ExecuteReader();
while (read.Read())
{
Txt_FirstName.Text = (read["FIRSTNAME"].ToString());
}
read.Close();
}
我是新手,所以我一直在关注教程,到目前为止还没有任何工作,所以任何帮助都会受到赞赏。
答案 0 :(得分:0)
如果要从TextBox而不是personIDTextBox
获取Text属性,则必须通过personIDTextBox.Text
获取Text属性。
答案 1 :(得分:0)
这里有几件事情,比如你没有为你的连接提供连接字符串,其次是,如果你personIDTextBox
是文本框的名称,你应该使用{{1属性。
此外,您应该使用Text
语句来自动处理对象。
using
注意:您应该使用命令参数而不是裸sql语句,因为它们容易 string connectionString = "You connection string to database";
using (SqlConnection con = new SqlConnection(connectionString))
{
// Open the SqlConnection.
con.Open();
//
// The following code uses an SqlCommand based on the SqlConnection.
//
using (SqlCommand command = new SqlCommand("select * from Personal_Details WHERE PersonID= " + personIDTextBox.Text, con))
using (SqlDataReader reader = command.ExecuteReader())
{
while (reader.Read())
{
Txt_FirstName.Text = (reader["FIRSTNAME"].ToString());
}
}
}
答案 2 :(得分:0)
这是错误的查询,因为此查询可以返回更多记录。如果查询将返回更多记录,您将被分配最后一条记录。
编辑查询:Select TOP 1 * From bla bla
此查询返回一条记录。
所以,你可以使用
while (read.Read())
{
Txt_FirstName.Text=reader.GetString(reader.GetOrdinal("FIRSTNAME"));
}
或者
//Because will return one record , you don't need to return records using while
if(read.read())
{
Txt_FirstName.Text=reader.GetString(reader.GetOrdinal("FIRSTNAME"));
}
注意:在DataReader中读取数据的最佳方法
reader.GetString(reader.GetOrdinal("FIRSTNAME"))