string Cstring = "Data Source=(local);Initial Catalog=baoting;Integrated Security=True";
SqlConnection Mycon = new SqlConnection(Cstring);
Mycon.Open();
string m1 = "select * from MagazineInfo where GMID='" + txtGoodsID.Text + "' AND GMName LIKE '%" + txtGoodsName.Text + "%'";
SqlCommand mycom1 = new SqlCommand(m1, Mycon);
SqlDataReader r1 = mycom1.ExecuteReader();
r1.Read();
//GID.Text = r1.GetString(0).Trim();
GName.Text = r1.GetString(1).Trim();
GNum.Text = r1.GetString(2).Trim();
GPub.Text = r1.GetString(3).Trim();
GRe.Text = r1.GetString(4).Trim();
Mycon.Close();
我每次运行,系统就会崩溃。请高手帮忙啊。看看哪里出错了。
SqlConnection Mycon = new SqlConnection(Cstring);
Mycon.Open();
string m1 = "select * from MagazineInfo where GMID='" + txtGoodsID.Text + "' AND GMName LIKE '%" + txtGoodsName.Text + "%'";
SqlCommand mycom1 = new SqlCommand(m1, Mycon);
SqlDataReader r1 = mycom1.ExecuteReader();
r1.Read();
//GID.Text = r1.GetString(0).Trim();
GName.Text = r1.GetString(1).Trim();
GNum.Text = r1.GetString(2).Trim();
GPub.Text = r1.GetString(3).Trim();
GRe.Text = r1.GetString(4).Trim();
Mycon.Close();
我每次运行,系统就会崩溃。请高手帮忙啊。看看哪里出错了。
{
//GID.Text = r1.GetString(0).Trim();
GName.Text = r1.GetString(1).Trim();
GNum.Text = r1.GetString(2).Trim();
GPub.Text = r1.GetString(3).Trim();
GRe.Text = r1.GetString(4).Trim();
}
难道查询出来的就只有一条数据吗
如果只查询出了一条数据的话应该没问题才对你在Mycon.Close(); 前加上r1.close(); 这个关了看看
string Cstring = "Data Source=(local);Initial Catalog=baoting;Integrated Security=True";
SqlConnection Mycon = new SqlConnection(Cstring);
Mycon.Open();
string m1 = "select * from MagazineInfo where GMID='" + txtGoodsID.Text + "' AND GMName LIKE '%" + txtGoodsName.Text + "%'";
SqlCommand mycom1 = new SqlCommand(m1, Mycon);
SqlDataReader r1 = mycom1.ExecuteReader();
//GID.Text = r1.GetString(0).Trim();
//GName.Text = r1.GetString(1).Trim();
//GNum.Text = r1.GetString(2).Trim();
//GPub.Text = r1.GetString(3).Trim();
//GRe.Text = r1.GetString(4).Trim();
//Mycon.Close(); if (dr.HasRows )
{
r1.Read();
GName.Text =r1[0].ToString();
GNum.Text =r1[1].ToString();
GPub.Text =r1[2].ToString();
GRe.Text =r1[3].ToString();
r1.Close();
}
else
{
r1.Close();
}
Mycon.Close();
改这样试试
1.你的程序启动的太多了
再查数据库刚好导致2.你得看看你的数据量
LIKE 是很耗费内存的3.read哪能不用while呢4.GNum是int型数据
得转换吧?5.r1.GetString(3).Trim();
不太理解
想取字段值?
r1["字段"].ToString();
就可以了吧
这点我还没注意看, 取数据时 r1["字段"].ToString();
LZ的r1.GetString("字段") 这种我还没用过捏
1、sql语句用字符串拼接,这样很危险;
2、既然like就like出来一条,实在搞不懂为什么还要用like;
3、r1.GetString[1].Trim()、r1.GetString[2].Trim()...这样写加入没有读到数据Trim()的话岂不是要报错;
4、未关闭r1;
5、虽然后面写了Mycon.Close(),顺利运行倒还好,要是中间报什么错误的话,也就没法关闭连接了。把这些问题都解决了,也许楼主说的这个“崩溃”就随之消失了
2.SqlDataReader r1 = mycom1.ExecuteReader();不要用只读的试下