2014-10-04 67 views
0

所以我有这样的:C#SQL多个查询结果划分为不同势文本

  Conn.Open(); 
      SqlCommand Comm3 = new SqlCommand("SELECT answer" + " FROM answers" + " WHERE id_answer=5" , Conn); 
      SqlDataReader DR3 = Comm3.ExecuteReader(); 

而且有多个结果,我怎么能现在不同势文本框移动他们每个人(我已经创建文本框至今?我只设法获得相同的结果放进去。

回答

0

这通常是我如何做到这一点....

SqlConnection cn = new SqlConnection("my connection string"); 
    cn.Open(); 

    string sql = "select * from table where column = whatever"; 
    using (SqlCommand cmd = new SqlCommand(sql,cn)) 
    { 
     SqlDataReader dr = cmd.ExecuteReader(); 

     while (dr.Read()) 
     { 
      myTextBox1.Text = (string)dr["Column1"]; 
      myTextBox2.Text = (string)dr["Column2"]; 
      myTextBox3.Text = (string)dr["Column3"]; 
     } 

     dr.Close(); 
    } 

    cn.Close(); 

只要确保同时通过他们循环,你的目标是正确的列名,并正确地投。

0

您可以通过每一个数据库表中的项目需要循环。想想foreach循环,你只是简单地办理每件商品,同样在它的工作的。

这是一个示例,

// Create new SqlDataReader object and read data from the command. 
using (SqlDataReader reader = command.ExecuteReader()) 
{ 
    // while there is another record present 
    while (reader.Read()) 
    { 
     // write the data on to the screen 
     textBox.Text = reader[0]; 
    } 
} 

这会将阅读者的第一列(答案)的值添加到文本框中。现在确保你正在调用正确的文本框来添加值。

http://www.codeproject.com/Articles/823854/How-to-connect-SQL-Database-to-your-Csharp-program请给这篇文章读一读。

+0

我用你的例子,但为第二个文本框textBox2.Text = reader [1];我得到错误,索引超出了数组的界限。这是否意味着SQL查询只返回1个结果? – user3062657 2014-10-04 21:48:57

+0

是的,确实如此:-)它在0位置返回了一条记录。 :-) – 2014-10-05 04:28:21