当前位置:编程学习 > C#/ASP.NET >>

C#数据库编程求大神,这是什么情况

源代码:
public Form5()
        {
            InitializeComponent();
            string st = @"Data Source=(localdb)\Projects;Initial Catalog=stumane";
            SqlConnection con = new SqlConnection(st);
            con.Open();
            Form1 F = new Form1();
            string sqlstr = "select * from stujiben where sid='" + F.textBox1.Text + "'";
            SqlCommand com=new SqlCommand(sqlstr,con);
            SqlDataReader sdr=com.ExecuteReader();
this.textBox1.Text=Convert.ToString(sdr["sid"]);
this.textBox2.Text = Convert.ToString(sdr["name"]);
this.textBox3.Text = Convert.ToString(sdr["sex"]);
this.textBox4.Text = Convert.ToString(sdr["pep"]);
this.textBox5.Text=Convert.ToString(sdr["sid"]);
this.textBox6.Text=Convert.ToString(sdr["sid"]);
this.textBox7.Text=Convert.ToString(sdr["sid"]);
this.textBox8.Text=Convert.ToString(sdr["sid"]);
this.textBox9.Text=Convert.ToString(sdr["sid"]);
this.textBox10.Text=Convert.ToString(sdr["sid"]);
this.textBox11.Text=Convert.ToString(sdr["sid"]); ;
this.textBox12.Text=Convert.ToString(sdr["sid"]);
this.textBox13.Text=Convert.ToString(sdr["sid"]);
this.textBox14.Text=Convert.ToString(sdr["sid"]);
this.textBox15.Text=Convert.ToString(sdr["sid"]);
this.textBox16.Text=Convert.ToString(sdr["sid"]);
this.textBox17.Text=Convert.ToString(sdr["sid"]);
this.textBox18.Text=Convert.ToString(sdr["sid"]); ;
this.textBox19.Text=Convert.ToString(sdr["sid"]);
this.textBox20.Text=Convert.ToString(sdr["sid"]);
sdr.Close();
con.Close();}
非常疑惑的一件事发生了,当我运行时,运行到”this.textBox1.Text=Convert.ToString(sdr["sid"]);“时中断,错误为:”在没有任何数据时进行无效的读取尝试。".....尼玛!!这算什么错误理由,我的数据库里明明有数据的。。。。 数据库 C# --------------------编程问答--------------------  string st = @"Data Source=(localdb)\Projects;Initial Catalog=stumane";


首先你的数据库连接字符串就是错误的,以什么身份访问数据库?
--------------------编程问答-------------------- Data Source=(localdb)\Projects;Initial Catalog=stumane;Integrated Security=True --------------------编程问答--------------------
引用 1 楼 q107770540 的回复:
 string st = @"Data Source=(localdb)\Projects;Initial Catalog=stumane";


首先你的数据库连接字符串就是错误的,以什么身份访问数据库?
问题不是出在这,况且我现在已经把问题解决了。。 --------------------编程问答-------------------- 你的数据库连接字符串不会是错了吧! --------------------编程问答--------------------
引用 4 楼 yang1203861350 的回复:
你的数据库连接字符串不会是错了吧!
没有错误,我试过了,而且问题现在也解决了。。 --------------------编程问答-------------------- 如果 你 用 SqlDataReader sdr=com.ExecuteReader();
必须 用while循环读取
while(ser.Read())
{

}
他类似于游标 --------------------编程问答--------------------
引用 6 楼 l397870376 的回复:
如果 你 用 SqlDataReader sdr=com.ExecuteReader();
必须 用while循环读取
while(ser.Read())
{

}
他类似于游标

if也可以 不是必须用while --------------------编程问答--------------------

if(dr.read())
{
 xxx.text=dr["name"].tostring();
 ooo.text=dr[1].tostring();
}
--------------------编程问答--------------------
引用 6 楼 l397870376 的回复:
如果 你 用 SqlDataReader sdr=com.ExecuteReader();
必须 用while循环读取
while(ser.Read())
{

}
他类似于游标

是的
你用了sdr.close; 但没打开阅读器
做这个用 异常捕获好点 --------------------编程问答--------------------
引用 8 楼 diaodiaop 的回复:

if(dr.read())
{
 xxx.text=dr["name"].tostring();
 ooo.text=dr[1].tostring();
}


引用 9 楼 u010181730 的回复:
Quote: 引用 6 楼 l397870376 的回复:

如果 你 用 SqlDataReader sdr=com.ExecuteReader();
必须 用while循环读取
while(ser.Read())
{

}
他类似于游标

是的
你用了sdr.close; 但没打开阅读器
做这个用 异常捕获好点


引用 7 楼 diaodiaop 的回复:
Quote: 引用 6 楼 l397870376 的回复:

如果 你 用 SqlDataReader sdr=com.ExecuteReader();
必须 用while循环读取
while(ser.Read())
{

}
他类似于游标

if也可以 不是必须用while


引用 6 楼 l397870376 的回复:
如果 你 用 SqlDataReader sdr=com.ExecuteReader();
必须 用while循环读取
while(ser.Read())
{

}
他类似于游标
谢谢几位。。我把这些代码加上了,现在出现的问题不是这个问题,而是SQL server语言的问题。。
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,