使用数据

时间:2015-10-21 09:43:08

标签: c# sql

我正在尝试创建它,以便在按下按钮时,它会从文本框中读取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();
}

我是新手,所以我一直在关注教程,到目前为止还没有任何工作,所以任何帮助都会受到赞赏。

3 个答案:

答案 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"))