如何在c#中检索数据库中的数据
本文关键字:数据库 数据 检索 | 更新日期: 2023-09-27 18:05:19
我写了这段代码,但我不知道为什么这行给出错误!
String sname = dr.GetString ("name");
我代码:SqlConnection cn = new SqlConnection(
"Data Source=.;Initial Catalog=logindb;Integrated Security=True");
string query1 = "select * from tbllogin";
SqlCommand cmd = new SqlCommand(query1);
SqlDataReader dr;
try
{
cn.Open();
dr = cmd.ExecuteReader();
while (dr.Read())
{
String sname = dr.GetString("name");
comboBox1.Items.Add(sname);
}
}
catch (Exception e)
{
// do smth about exception
}
首先你必须再检查一遍:
SqlConnection cn = new SqlConnection(
"Data Source=.;Initial Catalog=logindb;Integrated Security=True");
Data Source=.;
这是错误的,它会给你一个错误。
之后,您可以使用下面的代码来实现您想要的。下面的代码也使用using
语句来解除连接。
using (
SqlConnection connection = new SqlConnection(strCon)) // strCon is the string containing connection string
{
SqlCommand command = new SqlCommand("select * from tbllogin", connection);
connection.Open();
DataReader reader = command.ExecuteReader();
if (reader.HasRows)
{
while (reader.Read())
{
comboBox1.Items.Add(reader.GetString(int index)); // index of column you want, because this method takes only int
}
}
reader.Close();
}
(令人惊讶的是)GetString
仅以索引作为参数。看到MSDN
public override string GetString(int i)
没有其他签名:-(
但是你可以这样写:
String sname = dr.Item["name"].ToString();
MSDN说SqlDataReader.GetString
方法接受一个int
作为参数,这是列的索引。
你需要的是:
while (dr.Read())
{
String sname = (string)dr["name"];
comboBox1.Items.Add(sname);
}
这是你的代码:
SqlConnection cn = new SqlConnection("Data Source=.;Initial Catalog=logindb;Integrated Security=True");
string query1 = "select * from tbllogin"; SqlCommand cmd = new SqlCommand(query1); SqlDataReader dr;
try {
cn.Open(); dr = cmd.ExecuteReader();
while (dr.Read())
{ String sname = (string)dr["name"];
comboBox1.Items.Add(sname);
}
}
catch (Exception e) { MessageBox.Show(e.Message, "An error occurred!"); }
catch块没有正确写入,您错过了(Exception e)
部分