c# 2次读取数据库conn的问题
以前我用asp的时候,includeconn.asp后,在页面上可以多次更改conn的值。也就是说2次读取数据库,可以重复使用conn变量但是现在使用c#,需要1.读取一...
以前我用asp的时候,include conn.asp后,在页面上可以多次更改conn的值。
也就是说2次读取数据库,可以重复使用conn变量
但是现在使用c#,需要
1.读取一次数据库,获得一个编号cid+1,
2.然后再将cid+1插入数据库
就出现问题了,如下面的语句调试时出现2个错误
错误1 不能在此范围内声明名为“conn”的局部变量,因为这样会使“conn”具有不同的含义,而它已在“子级”范围中表示其他内容了
错误2 不能在此范围内声明名为“cmd”的局部变量,因为这样会使“cmd”具有不同的含义,而它已在“子级”范围中表示其他内容了
说明conn和cmd不可改变,我该如何做呢?
如果可以重复使用conn,多次读取数据库写起来很方便。求高手指教变量名称不改变的情况下,怎样多次使用。
private void button1_Click(object sender, EventArgs e)
{
///先获取一级分类的cid
string connString = ConfigurationManager.ConnectionStrings["mydian"].ConnectionString; //链接字符串
using (MySqlConnection conn = new MySqlConnection(connString))
{
MySqlCommand cmd = conn.CreateCommand();
cmd.CommandText = "select ifnull(max(cid),0)+1 from class_1";
conn.Open();
MySqlDataReader dr = cmd.ExecuteReader();
string cid_1 = dr.GetValue(0).ToString();
}
///插入一级分类
connString = ConfigurationManager.ConnectionStrings["hongfu"].ConnectionString; //链接字符串
MySqlConnection conn = new MySqlConnection(connString); //实例化conn,创建连接
conn.Open(); //打开数据库
MySqlCommand cmd = conn.CreateCommand();
cmd.CommandText = "insert into class_1 (cid,cname_1,dates) values (1,'" + textBox_class_1.Text + "',now())"; //写语句
int i = cmd.ExecuteNonQuery(); //执行语句
if (i > 0)
{
MessageBox.Show("添加一级分类成功");
}
else
{
MessageBox.Show("失败");
}
ASP中甚至还可以这样来方便的读取数据库
1.读取
set rsmoney=conn.execute("select * from userz where loginid='"&session("LoginID")&"'")
aa=rsmoney("LoginID")
2.执行
conn.execute("update jilu set wei="&request("wei")&",pi="&request("pi")&" where seq="&request("seq"))
c#中有什么好办法么? 展开
也就是说2次读取数据库,可以重复使用conn变量
但是现在使用c#,需要
1.读取一次数据库,获得一个编号cid+1,
2.然后再将cid+1插入数据库
就出现问题了,如下面的语句调试时出现2个错误
错误1 不能在此范围内声明名为“conn”的局部变量,因为这样会使“conn”具有不同的含义,而它已在“子级”范围中表示其他内容了
错误2 不能在此范围内声明名为“cmd”的局部变量,因为这样会使“cmd”具有不同的含义,而它已在“子级”范围中表示其他内容了
说明conn和cmd不可改变,我该如何做呢?
如果可以重复使用conn,多次读取数据库写起来很方便。求高手指教变量名称不改变的情况下,怎样多次使用。
private void button1_Click(object sender, EventArgs e)
{
///先获取一级分类的cid
string connString = ConfigurationManager.ConnectionStrings["mydian"].ConnectionString; //链接字符串
using (MySqlConnection conn = new MySqlConnection(connString))
{
MySqlCommand cmd = conn.CreateCommand();
cmd.CommandText = "select ifnull(max(cid),0)+1 from class_1";
conn.Open();
MySqlDataReader dr = cmd.ExecuteReader();
string cid_1 = dr.GetValue(0).ToString();
}
///插入一级分类
connString = ConfigurationManager.ConnectionStrings["hongfu"].ConnectionString; //链接字符串
MySqlConnection conn = new MySqlConnection(connString); //实例化conn,创建连接
conn.Open(); //打开数据库
MySqlCommand cmd = conn.CreateCommand();
cmd.CommandText = "insert into class_1 (cid,cname_1,dates) values (1,'" + textBox_class_1.Text + "',now())"; //写语句
int i = cmd.ExecuteNonQuery(); //执行语句
if (i > 0)
{
MessageBox.Show("添加一级分类成功");
}
else
{
MessageBox.Show("失败");
}
ASP中甚至还可以这样来方便的读取数据库
1.读取
set rsmoney=conn.execute("select * from userz where loginid='"&session("LoginID")&"'")
aa=rsmoney("LoginID")
2.执行
conn.execute("update jilu set wei="&request("wei")&",pi="&request("pi")&" where seq="&request("seq"))
c#中有什么好办法么? 展开
1个回答
展开全部
using (MySqlConnection conn = new MySqlConnection(connString))
{
MySqlCommand cmd = conn.CreateCommand();
cmd.CommandText = "select ifnull(max(cid),0)+1 from class_1";
conn.Open();
MySqlDataReader dr = cmd.ExecuteReader();
string cid_1 = dr.GetValue(0).ToString();
cmd.CommandText = "insert into class_1 (cid,cname_1,dates) values (1,'猜芹" + textBox_class_1.Text + "',now())";
int i = cmd.ExecuteNonQuery(); //执行语句
if (i > 0)
{
MessageBox.Show("磨兆袭添加一级分类成功"瞎兄);
}
else
{
MessageBox.Show("失败");
}
}
{
MySqlCommand cmd = conn.CreateCommand();
cmd.CommandText = "select ifnull(max(cid),0)+1 from class_1";
conn.Open();
MySqlDataReader dr = cmd.ExecuteReader();
string cid_1 = dr.GetValue(0).ToString();
cmd.CommandText = "insert into class_1 (cid,cname_1,dates) values (1,'猜芹" + textBox_class_1.Text + "',now())";
int i = cmd.ExecuteNonQuery(); //执行语句
if (i > 0)
{
MessageBox.Show("磨兆袭添加一级分类成功"瞎兄);
}
else
{
MessageBox.Show("失败");
}
}
更多追问追答
追问
按照你的方法,到这句string cid_1 = dr.GetValue(0).ToString(); 的时候,提示错误:“Invalid attempt to access a field before calling Read()”
是什么意思?
追答
string cid_1 = dr.GetValue(0).ToString(); 这句上面加上
string cid_1 = null;
if (rd.HasRows)
{
dr.Read();
cid_1 = dr.GetValue(0).ToString();
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询