C#如何从数据库中读出一行数据并显示在listView中??

SqlConnection conn;
private void FormDepartmentFilesFind_Load(object sender, EventArgs e)//窗体
{
conn = new SqlConnection("server=172.16.43.55;database=CateringDB;uid=sa;pwd=123456");//连接数据库
conn.Open();
}

private void button1_Click(object sender, EventArgs e)//“查找”按钮
{
if (Textname.Text == "")
{
MessageBox.Show("部门名称不能为空,请输入部门名称");
}
else
{
SqlCommand cmd = new SqlCommand("select * from tbl_Department_Info where deptName="+ Textname.Text.Trim(), conn);
SqlDataReader reder = cmd.ExecuteReader();
while (reder.Read())
{
listView1.Items.Add(reder["deptId"].ToString());
}
conn.Close();
}
}
该如何写?求指点!
每次输入一个部门名称,然后点击查找按钮,窗口直接就关闭了。

第1个回答  2013-12-19
在else里面加一个try catch,里面肯定存在错误的地方,然后将异常抛出来,根据异常信息看错在哪儿了。另外,非常明显的错误是,查询语句是错的追问

哪错了?SqlCommand cmd = new SqlCommand("",conn);语法不是这样吗?

追答

查询语句,查询语句里的参数需要使用单引号
select * from table where something='something'

追问

恩。这样啊。谢谢!

追答

1数据库连接是否正确
2数据库是否查询到数据
3数据显示过程是否出错
上面的内容出现问题的排错顺序

追问

恩。解决了。谢谢!

追答

不客气

第2个回答  2013-12-19

先改这句再说调试结果

"select * from tbl_Department_Info where deptName='"+ Textname.Text.Trim() + "'";

追问

有什么区别吗?

调试的结果还是一样,没有显示任何内容,窗口直接自动关闭。

追答

listView1.Items.Add(reder["deptId"].ToString());前面加

if(reder["deptId"]!=null)
看是否还直接退出呢

追问

结果还是一样

追答

每个语句都加上断点,运行看到哪里退出的。

追问

成功了,这回显示了deptId这个数据,但我想让这一行数据都显示出来,不只是这一列,怎么做?

追答

怎么成功的?问题在哪?

本回答被提问者采纳
第3个回答  2013-12-19
把你项目发上来我帮你解决追问

其他的都还只搭了个框架,这个功能点是第一个做的,结果就碰到了问题。
弄了半天也不能从数据库中打印数据到listView中。

追答

我建议你把listView控件换成datagridview控件,那样吧查询出来结果集直接赋给datagridview就行了,用listView显示不太好!datagridview是专门用来显示格式化数据的,比如数据库的表

追问

哦,我试试。

相似回答