为什么在C#调用数据库操作的函数中,不能使用cmd.语句?

同样都是cmd.CommandText,为什么第一个函数里面就显示上下文中不存在cmd呢?

Cmd是一个对象的变量,你首先要连接数据库,定义该变量才能使用。

你在不同的方法、函数中,定义的变量都是局部变量,而非全局变量,在c#中,全局变量与局部变量是不能同名的,而局部变量只在本方法中有效,在其他方法中,需要重新定义

private int _a = 100; // 在全局声明的,则全局有效,在类中声明的,则类中哟偶小
public main(){
    int a = 10;    // 本处变量a仅在main中有效,且无法传递到所有调用的任何方法和函数
    int b = a + _a;
    funA();
    funB(ref a);    // 将变量a作为引用类型传递给方法b
}
private void funA(){
    int b = a + _a; // 提示a未定义
}
private void funB(ref int x){
    // funB 中的 x 与 main中调用funB的变量a,是同一个变量,因为有ref修饰
    x = x + _a;
}

 

数据库已经链接了,而且截图里的第二个函数也能用cmd.xxxx,但是不知道为什么第一个用不了

 

您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632

能问出这个问题,肯定是说什么都没用了,直接告诉你怎么改先把报错给解了
cmd.CommandText =  sql
这里改成两行
OledbCommand cmd = myCon.CreateCommand();
cmd.CommandText =  sql