网站和数据库的连接语句

lonely9292 2011-04-17 07:03:59
做了一个公共类global,里面定义了连接数据库的语句,然后再另外几个网页里面调用,出现了一个问题

global中的定义:

protected void Session_Start(Object sender, EventArgs e)
{
//读取数据库连接字符串
Session["str_connection"] = System.Configuration.ConfigurationSettings.AppSettings["Connectionstring"];

}

web.config中:

<appSettings>
<add key="Connectionstring" value="server=localhost;user id=sa;password=12345;database =user_register"/>
<add/>
</appSettings>


其它网页调用Session_Start中的Session变量:

private void databind() //定义数据查询与绑定私有过程
{
int curPage = Convert.ToInt32(this.Label2.Text);
SqlConnection conn = new SqlConnection(Session["str_connection"].ToString());

conn.Open();
String mysql = "SELECT * FROM book order by id desc";
SqlDataAdapter mybook = new SqlDataAdapter(mysql, conn);
DataSet ds = new DataSet();
}



出现的问题是SqlConnection conn = new SqlConnection(Session["str_connection"].ToString());
未将对象引用设置到对象的实例。。。

求路过的给个解决方法
...全文
164 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
lonely9292 2011-04-19
  • 打赏
  • 举报
回复
[Quote=引用 17 楼 peter20091001 的回复:]
SqlConnection conn = new SqlConnection(Session["str_connection"].ToString()); 有问题。
应该获取web.config中的数据库连接字符串,而不是session中的。再说session不是一直存在的。
[/Quote]
session存放了web.config的连接字符串的操作语句,然后我有多个网页需要调用这个操作语句,所以就想做成session,方便调用。
blue999ice 2011-04-18
  • 打赏
  • 举报
回复
放错了,不能放入session
直接在web.config里配好就好了,然后直接用ConfigurationManager.ConnectionStrings["SqlConnectionString"].ConnectionString;获取。注意开头引入using System.Configuration;
peter20091001 2011-04-18
  • 打赏
  • 举报
回复
SqlConnection conn = new SqlConnection(Session["str_connection"].ToString()); 有问题。
应该获取web.config中的数据库连接字符串,而不是session中的。再说session不是一直存在的。
hao2629 2011-04-18
  • 打赏
  • 举报
回复

<!--数据库连接字段-->
<connectionStrings>
<add name="connectionStrings" connectionString="server=ip;database=数据库名;uid=用户名;pwd=密码" providerName="System.Data.SqlClient"/>
</connectionStrings>


//连接数据库类
public static class DBHelpM
{
private static SqlConnection conn;

public static SqlConnection Conn
{
get
{
string con = ConfigurationManager.ConnectionStrings["connectionString1"].ConnectionString.ToString();
conn = new SqlConnection(con);
return conn;
}

}
public static object getSR(string str)
{
Conn.Open();
SqlCommand com = new SqlCommand(str, conn);
int result = Convert.ToInt32(com.ExecuteScalar());
return result;

}
public static object getSR(string str, params SqlParameter[] values)
{
Conn.Open();
SqlCommand com = new SqlCommand(str, conn);
com.CommandType = CommandType.StoredProcedure;
if(values!=null)
{
com.Parameters.AddRange(values);
}
int reslut = Convert.ToInt32(com.ExecuteScalar());
return reslut;
}
public static int getEQ(string str, params SqlParameter[] values)
{
Conn.Open();
SqlCommand com = new SqlCommand(str, conn);
com.CommandType = CommandType.StoredProcedure;
if(values!=null)
{
com.Parameters.AddRange(values);
}
int reslut = Convert.ToInt32(com.ExecuteNonQuery());
return reslut;
}

public static DataSet getDate(string str, params SqlParameter[] values)
{
Conn.Open();
SqlCommand com = new SqlCommand(str, conn);
com.CommandType = CommandType.StoredProcedure;
if(values!=null)
{
com.Parameters.AddRange(values);
}
DataSet ds = new DataSet();
SqlDataAdapter da = new SqlDataAdapter(com);
da.Fill(ds);
return ds;

}

}
}

用到连接数据库的地方 直接使用DBHelpM
spider_home 2011-04-18
  • 打赏
  • 举报
回复
Session["str_connection"] = ConfigurationManager.AppSettings["Connectionstring"].Tosting();
浮尘1213 2011-04-18
  • 打赏
  • 举报
回复

SqlConnection conn = new SqlConnection(Session["str_connection"].ToString());

这样取感觉不太好
浮尘1213 2011-04-18
  • 打赏
  • 举报
回复
写在AppSettings中也没错
SeanDing1989 2011-04-18
  • 打赏
  • 举报
回复
没必要global中定义吧。。。
web.config中直接配置就行了。
tony312ws 2011-04-18
  • 打赏
  • 举报
回复
Configuration 这个引用添加了吗?
格桑花 2011-04-18
  • 打赏
  • 举报
回复
没遇到过,不过你要是写在配置文件里应该是可以的
程程 2011-04-18
  • 打赏
  • 举报
回复
如果你想保存,建议采用cookie!!!
huiyuan659 2011-04-17
  • 打赏
  • 举报
回复
AppSettings是.net1.1版本里用的东西,更新换代了
shine_fly 2011-04-17
  • 打赏
  • 举报
回复
dalmeeme 2011-04-17
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 lonely9292 的回复:]
添加的DLL文件名字是什么呢?
[/Quote]
如果是Access、Sqlserver数据库则不同添加dll文件。如果是非微软的数据库,则需要添加相应的dll才能操控数据库。比如MySql的话,需要在网站Bin目录下添加Mysql.Data.dll。通过“添加引用”功能可以让开发工具自动添加这个dll,并配置好web.config文件中的引用信息。
dalmeeme 2011-04-17
  • 打赏
  • 举报
回复
规范的做法是,在web.config里#]configuration节下添加个connectionStrings节,把数据连接写到里面:
<configuration>
<appSettings/>
<connectionStrings>
<add name="SqlConnectionString" connectionString="Data Source=.;Initial Catalog=学生;User ID=sa"/>
</connectionStrings>
......

用ConfigurationManager.ConnectionStrings["SqlConnectionString"].ConnectionString;获取。注意开头引入using System.Configuration;
lonely9292 2011-04-17
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 wxr0323 的回复:]
写在web.config中

后台获取的时候用

configurationManager.connectionString["SYXTConnectionString"].ToString()

Web.config中加入


XML code

<connectionStrings> <add name="SYXTConnectionString" connectionS……
[/Quote]

添加的DLL文件名字是什么呢?
gx791264939 2011-04-17
  • 打赏
  • 举报
回复
SqlConnection conn = new SqlConnection(Session["str_connection"].ToString());

这里不能这么些,写给个判断
if(Session["str_connection"]!=null)
{
SqlConnection conn = new SqlConnection(Session["str_connection"].ToString());

}
我也不清楚Session的值为丢失,建议尽量少用session
子夜__ 2011-04-17
  • 打赏
  • 举报
回复
写在web.config中

后台获取的时候用

configurationManager.connectionString["SYXTConnectionString"].ToString()

Web.config中加入


<connectionStrings> <add name="SYXTConnectionString" connectionString="Data Source=LEIKE;Initial Catalog=SYXT;User ID=sa;Password=sa" providerName="System.Data.SqlClient" /> </connectionStrings>


页面别忘记引用using System.Configuration

BIN文件夹下也要添加。DLL
hztltgg 2011-04-17
  • 打赏
  • 举报
回复
为什么不在绑定里直接去配置信息,而要放在session里?要放的话,这个配置信息怎么说针对会话,而不是application或者chace?

62,074

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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