C# 三层开发连接数据库(sql server2005)问题?非常感谢帮助一下?

wuhz520 2009-04-24 11:15:49
public class Constant //此类(Constant)置于"ecan8Data.DB"数据层中
{
private static readonly string _connstr = ConfigurationManager.ConnectionStrings["ConnectionString"].ToString();
public static string Connstr
{
get { return Constant._connstr; }
}
}

using (SqlConnection objconn = new SqlConnection(Constant.Connstr))//此处出借
{
objconn.Open();
//操作代码
objconn.Close();
objconn.Dispose();
}

//App.config的连接代码
<connectionStrings>
<add name="ConnectionString" connectionString="Data Source=(local);Initial Catalog=ECAN8DATA;Integrated Security=True" providerName="System.Data.SqlClient"/>
</connectionStrings>

运行程序时,报连接时错误,出现以下错误,大家帮我看一下怎么回事?

“ecan8Data.DB.Constant”的类型初始值设定项引发异常。

非常感谢!!!
...全文
144 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
wuhz520 2009-04-24
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 ericzhangbo1982111 的回复:]
public class Constant //此类(Constant)置于"ecan8Data.DB"数据层中
{
private static readonly string _connstr = ConfigurationManager.ConnectionStrings["ConnectionString"].ToString();
public static string Connstr
{
get { return Constant._connstr; }
}
}


如果你想定义成const的属性
那么你就不用用ConfigurationManager来读取
用xmldocument来读取就没问题了

因…
[/Quote]
能说的在明白一些吗?
能给出相应的代码最好!谢谢!
mytimes_walker 2009-04-24
  • 打赏
  • 举报
回复
ConfigurationManager.ConnectionStrings[]这个索引是根据你在配置文件里面配置的<connectionString>节点的属性值。根据需要,您可以按照Name取值,也可以按照Index取值。
LGP88864237 2009-04-24
  • 打赏
  • 举报
回复
说的有道理
deng520159 2009-04-24
  • 打赏
  • 举报
回复
楼主基础理论不太好,要注意了,configurationManageer 直接取最好,多用using 语句都是正确的,
jietuan 2009-04-24
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 ericzhangbo1982111 的回复:]
public class Constant //此类(Constant)置于"ecan8Data.DB"数据层中
{
private static readonly string _connstr = ConfigurationManager.ConnectionStrings["ConnectionString"].ToString();
public static string Connstr
{
get { return Constant._connstr; }
}
}


如果你想定义成const的属性
那么你就不用用ConfigurationManager来读取
用xmldocument来读取就没问题了

因…
[/Quote]

解释得非常好,你使用单件模式初始化ConnectionString就可以了。
lxyjp2 2009-04-24
  • 打赏
  • 举报
回复
public class Constant //此类(Constant)置于"ecan8Data.DB"数据层中
{
private static readonly string _connstr;
public Constant(){
string _connstr= ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;

}

public internal string Connstr
{
get { return this.Constant._connstr; }
}
}

using (SqlConnection objconn = new SqlConnection(Connstr))//此处出借
{
objconn.Open();
//操作代码
objconn.Close();
objconn.Dispose();
}


试试
hnjhjzyyxgs 2009-04-24
  • 打赏
  • 举报
回复
ConfigurationManager.ConnectionStrings[0].
ericzhangbo1982111 2009-04-24
  • 打赏
  • 举报
回复
public class Constant //此类(Constant)置于"ecan8Data.DB"数据层中
{
private static readonly string _connstr = ConfigurationManager.ConnectionStrings["ConnectionString"].ToString();
public static string Connstr
{
get { return Constant._connstr; }
}
}



如果你想定义成const的属性
那么你就不用用ConfigurationManager来读取
用xmldocument来读取就没问题了

因为windowsfrom程序他会生成一个app.config.exe的文件放到bin里面
而你初始化类的时候 系统看你定义的是static会先初始化
但那时候你的文件还没有生成 所以会异常

111,126

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧