我如何将数据库中的字符串插入ListBox

时间:2011-08-01 13:01:14

标签: c#

 string SQL = "SELECT * FROM Email ";
 string myConnString = @"Provider=Microsoft.Jet.OLEDB.4.0;" +
              "Data Source=" + textBox1.Text;
 OleDbConnection myConnection = new OleDbConnection(myConnString);
 OleDbCommand myCommand = new OleDbCommand(SQL, myConnection);
 myConnection.Open();
 OleDbDataReader myReader = myCommand.ExecuteReader();
 if (myReader.Read())
 {
    View.Items.Add(myReader.Read());
 }
 myConnection.Close();

输出 False 。输出应为israel.nahum(来自数据库)

3 个答案:

答案 0 :(得分:2)

您需要指定要从中检索文本的列:

string SQL = "SELECT * FROM Email ";
    string myConnString = @"Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" + textBox1.Text;
    OleDbConnection myConnection = new OleDbConnection(myConnString);
    OleDbCommand myCommand = new OleDbCommand(SQL, myConnection);
    myConnection.Open();
    OleDbDataReader myReader = myCommand.ExecuteReader();

    //Changed if(myReader.Read()) to while(myReader.Read())
    while(myReader.Read())
    {
        View.Items.Add(myReader["NameOfColumnGoesHere"]);
    }



    myConnection.Close();

查看the documentation for the OleDbDataReader Class.

答案 1 :(得分:1)

读取让您访问迭代器(将结果的下一项放入其中)使用

if (myReader.Read())
{
    View.Items.Add(myReader["COLUMN_NAME"]);
}

然后,如果读者返回了某些内容,那么它将会放入您的项目中。

答案 2 :(得分:0)

请查看MSDN文档中如何使用DataReader对象。 Read正在读取一行,如果有任何可用行,则返回true,您应该使用其他方法从当前行获取值。

另外,请注意,如果您只需要一列,则无需执行SELECT * FROM...,只需执行SELECT Email FROM ... ...