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#中有什么好办法么?
展开
 我来答
miniappfVOpHAkJKcK0t
2011-09-13 · TA获得超过354个赞
知道小有建树答主
回答量:338
采纳率:0%
帮助的人:280万
展开全部
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("失败");
}
}
更多追问追答
追问
按照你的方法,到这句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();
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式