字段初始值无法引用非静态字段、方法或属性

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了字段初始值无法引用非静态字段、方法或属性相关的知识,希望对你有一定的参考价值。

//类文件源码如下
class DataB

const string strConn= ConfigurationManager.ConnectionStrings["conn"].ToString();

public DataB()




public DataSet ExecuteSelect(string strSql, string strTableName)

SqlConnection conn = new SqlConnection(strConn);
SqlCommand com = conn.CreateCommand();
com.CommandText = strSql;
SqlDataAdapter da = new SqlDataAdapter();
da.SelectCommand = com;
DataSet ds = new DataSet();
conn.Open();
da.Fill(ds, strTableName);
conn.Close();
return ds;



部分原码如下
DataB md=new DataB();
DataSet Ds=md.ExecuteSelect("select * from TiLine","TiLine");

提示:md 字段初始值无法引用非静态字段、方法或属性 求高手解答

参考技术A const string strConn= ConfigurationManager.ConnectionStrings["conn"].ToString();
这一句的问题..... 改成
public DataSet ExecuteSelect(string strSql, string strTableName) SqlConnection conn = new SqlConnection( ConfigurationManager.ConnectionStrings["conn"].ToString()); SqlCommand com = conn.CreateCommand(); com.CommandText = strSql; SqlDataAdapter da = new SqlDataAdapter(); da.SelectCommand = com; DataSet ds = new DataSet(); conn.Open(); da.Fill(ds, strTableName); conn.Close(); return ds;

改成这样儿哦.... 亲。。。。。听我的没错儿...... 把你, ExecuteSelect 的那个,strCon 替换为ConfigurationManager.ConnectionStrings["conn"].ToString() 就可以了追问

试过了 不可以,愁死我了都

参考技术B 看看你的DataB的定义,有可能是静态的,如果是就应该写成:DataSet Ds=DataB.ExecuteSelect("select * from TiLine","TiLine");追问

不可以,还是相同的错误

追答

能把你的datab类贴出来吗?主要贴datab类定义和ExecuteSelect方法

追问

已经贴出来了啊
DataB md=new DataB();DataSet Ds=md.ExecuteSelect("select * from TiLine","TiLine");
上面那段代码就是的

追答

const string strConn= ConfigurationManager.ConnectionStrings["conn"].ToString();
去掉const,就解决了,我测试了你这段代码没问题,

本回答被提问者采纳
参考技术C 非静态方法无法使用静态方法,所以最好方法和属性统一一下,要么都静态,要么都不静态 参考技术D 上面的代码没有问题,查看数据库连接语句是否存在问题 第5个回答  2013-12-24 可以的吧,如果你不是Private的话

字段初始值设定项无法引用非静态字段、方法或属性

public partial class Form1 : Form public Form1() InitializeComponent(); string str; SqlConnection sqlcon = new SqlConnection(str); //调试时错误提示:“字段初始值设定项无法引用非静态字段、方法或属性始值” public void con() SqlConnection sqlcon = new SqlConnection(str); //同样的语句复制到方法体内却可以运行 我知道解决方法,但不明白这是为什么,求高手指点,上面的代码,在方法体外和方法体内有什么区别,为什么方法体外不能调用非静态变量,而方法内可以,为什么前面的出错,后面的不出错 。求教……

参考技术A string
str;
SqlConnection
sqlcon
=
new
SqlConnection(str);
//调试时错误提示:“字段初始值设定项无法引
亲,他说的很清楚啊,你定义了str,但是你没给他赋值,要这样写
string
str
=
@"server=localhost;database=test;uid=sa;pwd=sa";
SqlConnection
sqlcon
=
new
SqlConnection(str);
这要就不会报错了。

以上是关于字段初始值无法引用非静态字段、方法或属性的主要内容,如果未能解决你的问题,请参考以下文章

字段初始值无法引用非静态字段、方法或属性

C# 字段初始值设定项无法引用非静态字段、方法或属性

C# 字段初始值设定项无法引用非静态字段、方法或属性

C# 字段初始值无法引用非静态字段、方法或属性

急 字段初始值无法引用非静态字段、方法或属性“Common.Helper.ns”

C# 字段初始值设定项无法引用非静态字段、方法或属性