关于ASP.NET与数据库连接的问题 推荐你用 CYQ.Data 数据框架 来操作数据库,就不会有这么让人头疼的代码产生了。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 http://blog.csdn.net/Jamie2012/archive/2011/02/28/6214242.aspx最近研究了一下asp.net 2008 连接sql2005的代码,终于能明白了。首先环境 1、系统是XP sp3 2、编程工具是vs2008 asp.net(vb)3、数据库是 sql2005 express版本首先设置web.config 连接代码,把如下代码粘贴到里 <appSettings> <add key="ConnectionString" value="server=localhost\sqlexpress;uid=sa;pwd=xxxxx;database=dataname"/> </appSettings>其次,在代码中编写代码。1、在代码页面最上面写上 Imports System.Data.SqlClient2、数据库连接代码 Dim sconnect As String sconnect = System.Configuration.ConfigurationManager.AppSettings("ConnectionString") Dim conn As SqlConnection conn = New SqlConnection(sconnect) conn.Open()注意首先设置sql2005 express 设置sa登入名 和密码。授权管理数据库,还有设置数据库允许远程连接。china wholesale 请问一下,这个是一个软件吗?用来操作sql数据库的? string sql = "";if (dataOperate.execSQL(sql)) { if (barcode == "add") { sql = "insert into tb_stuInfo values('" + sBarcode + "','" + sPass + "','" + sName + "','" + Sex + "','" + sType + "','" + CertType + "','" + Cert + "','" + Tel + "','" + Email + "','" + Re + ")"; } else { sql = "update tb_stuInfo set stuName='" + sName + "',sex='" + Sex + "',stuType='" + sType + "',certificateType='" + CertType + "',certificate='" + Cert + "',tel='" + Tel + "',email='" + Email + "',re='" + Re + "' where stuBarCode='" + barcode + "'"; } dataOperate.execSQL(sql); Response.Write("<script>alert('设置成功!');window.opener.location.href=window.opener.location='stuInfo.aspx';window.close();</script>"); } else { Response.Write("<script>alert('设置失败!')</script>"); }你觉得你那句代码有意义吗?去执行一个空的sql语句。if (barcode == "add") { sql = "insert into tb_stuInfo values('" + sBarcode + "','" + sPass + "','" + sName + "','" + Sex + "','" + sType + "','" + CertType + "','" + Cert + "','" + Tel + "','" + Email + "','" + Re + ")"; } else { sql = "update tb_stuInfo set stuName='" + sName + "',sex='" + Sex + "',stuType='" + sType + "',certificateType='" + CertType + "',certificate='" + Cert + "',tel='" + Tel + "',email='" + Email + "',re='" + Re + "' where stuBarCode='" + barcode + "'"; }try{dataOperate.execSQL(sql); Response.Write("<script>alert('设置成功!');window.opener.location.href=window.opener.location='stuInfo.aspx';window.close();</script>");}catch(Exception ex){Response.Write("<script>alert('设置失败!错误原因:"+ex.Message+"')</script>");} 应该没有执行空的语句啊,开始的那个只是定义sql的类型,在IF语句里面的才是sql执行语句的吧~ 你insert 的Sql语句肯定有问题。dataOperate.execSQL(sql);这句中方法public static bool execSQL(string sql) { //创建数据库连接 SqlConnection con = createCon(); //打开数据库连接 con.Open(); //创建SqlCommand对象 SqlCommand com = new SqlCommand(sql, con); try { //执行SQL语句 com.ExecuteNonQuery(); } catch (Exception e) { //返回布尔值False //return false;这里把异常屏蔽了。你肯定看不到。把这句话注释了。用下面那句throw e; } finally { //关闭数据库连接 con.Close(); } //返回布尔值True return true; }再次运行会给你提示错误信息! 未将对象引用设置到对象的实例。 说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.NullReferenceException: 未将对象引用设置到对象的实例。源错误: 行 16: protected void Page_Load(object sender, EventArgs e)行 17: {行 18: barcode = Request.QueryString["stuBarCode"].ToString(); //获取对学生操作的方式行 19: if (!IsPostBack) //判断是否是首次加载行 20: { 这是我在insert into 语句后加入断点后调试的结果,第18行出错,但是看这个提示,我却不知道具体错误要怎么解决了。。barcode应该是在点击了“添加学生信息”之后就等于“add”的了,不然页面标题也不会显示“添加学生信息”呀。但是还是提示那里出错。 你已经测试出来了啊 很明显 你添加成功 Response.Write("<script>alert('设置成功!');window.opener.location.href=window.opener.location='stuInfo.aspx';window.close();</script>");返回的是 'stuInfo.aspx' 没有了stuBarCode参数!barcode = Request.QueryString["stuBarCode"].ToString(); 肯定报错!当然执行到 pageload 就错了啊 空指针barcode = Request.QueryString["stuBarCode"].ToString(); 为null 我是在stuInfo.aspx页面中点击了“添加学生信息”来打开的addstuInfo.aspx,此时应该有stuBarCode=='add'了,然后上面的那条语句中barcode可以得到这个'add'了呀,为什么还是空指针呢,难道是跟15楼的大牛所说的那样,在显示“设置成功”后打开的页面丢失了stuBarCode的参数吗? 不太懂没那个。。那如果出错的原因是“添加成功”后的那条语句丢失了stuBarCode的参数,那stuBarCode最开始的参数不是来自于前台代码中的“<a style="text-decoration:none;" href="#" onclick="window.open('addstuInfo.aspx?stuBarCode=add','','width=340,height=371');">添加学生信息</a>”的吗?为什么还跟后台代码中添加成功后返回的值有关系呢? barcode = Request.QueryString["stuBarCode"].ToString();把这段话放到if (!IsPostBack) //判断是否是首次加载里面 不然页面刷新后barcode就肯定为null了 stuBarCode这个值是你根据前一个页面上传过来的当然得在第一次加载stuManage_addstuInfo时取 不然你stuManage_addstuInfo页面一刷新Request.QueryString["stuBarCode"]就会报错 string barcode = ""; protected void Page_Load(object sender, EventArgs e) {string barcode = "";这个也不应该放外面 不然你想一下 页面一刷新 barcode就为空,那你后面的判断肯定又要出问题 那如果string barcode = "";这个东西也放在里面的话,那不得在protected void btnSave_Click(object sender, EventArgs e)和 public void bindstuInfo()里面都在定义一次string barcode = "";?因为那两个模块里面都用到barcode的。。 设置公共静态变量session bindstuInfo(string barcode) 方法传值 使用session来保存这个静态变量吗?具体怎么操作,能不能再说的详细点,本人在这方面比较空。。 我是说可以使用公共静态变量或者放session或者调方法时传值 求大家一个关于javasript格式还原的问题! GridView索引超出范围。必须为非负值并小于集合大小 原来水晶报表rpt文件也有数据连接信息,如何修改? 脚本问题 如何修改水晶报表图例的文字 请教高手几个关于“HTTP处理程序”的重要问题! 有关DataGrid使用(在线等) 探讨一下分库查询的问题 高手们,ASP.NET中的邮件为何发送不成功?提示没有CDO.Message datagrid 的问题 评论采集 这是什么加密方法
<add key="ConnectionString" value="server=localhost\sqlexpress;uid=sa;pwd=xxxxx;database=dataname"/>
</appSettings>其次,在代码中编写代码。1、在代码页面最上面写上 Imports System.Data.SqlClient2、数据库连接代码 Dim sconnect As String
sconnect = System.Configuration.ConfigurationManager.AppSettings("ConnectionString")
Dim conn As SqlConnection
conn = New SqlConnection(sconnect)
conn.Open()注意首先设置sql2005 express 设置sa登入名 和密码。授权管理数据库,还有设置数据库允许远程连接。
china wholesale
请问一下,这个是一个软件吗?用来操作sql数据库的?
if (dataOperate.execSQL(sql)) {
if (barcode == "add")
{
sql = "insert into tb_stuInfo values('" + sBarcode + "','" + sPass + "','" + sName + "','" + Sex + "','" + sType + "','" + CertType + "','" +
Cert + "','" + Tel + "','" + Email + "','" + Re + ")";
}
else
{
sql = "update tb_stuInfo set stuName='" + sName + "',sex='" + Sex + "',stuType='" + sType + "',certificateType='" + CertType + "',certificate='" +
Cert + "',tel='" + Tel + "',email='" + Email + "',re='" + Re + "' where stuBarCode='" + barcode + "'";
}
dataOperate.execSQL(sql);
Response.Write("<script>alert('设置成功!');window.opener.location.href=window.opener.location='stuInfo.aspx';window.close();</script>");
}
else
{
Response.Write("<script>alert('设置失败!')</script>");
}你觉得你那句代码有意义吗?去执行一个空的sql语句。
if (barcode == "add")
{
sql = "insert into tb_stuInfo values('" + sBarcode + "','" + sPass + "','" + sName + "','" + Sex + "','" + sType + "','" + CertType + "','" +
Cert + "','" + Tel + "','" + Email + "','" + Re + ")";
}
else
{
sql = "update tb_stuInfo set stuName='" + sName + "',sex='" + Sex + "',stuType='" + sType + "',certificateType='" + CertType + "',certificate='" +
Cert + "',tel='" + Tel + "',email='" + Email + "',re='" + Re + "' where stuBarCode='" + barcode + "'";
}
try
{
dataOperate.execSQL(sql);
Response.Write("<script>alert('设置成功!');window.opener.location.href=window.opener.location='stuInfo.aspx';window.close();</script>");}catch(Exception ex)
{
Response.Write("<script>alert('设置失败!错误原因:"+ex.Message+"')</script>");
}
应该没有执行空的语句啊,开始的那个只是定义sql的类型,在IF语句里面的才是sql执行语句的吧~
dataOperate.execSQL(sql);
这句中方法
public static bool execSQL(string sql)
{
//创建数据库连接
SqlConnection con = createCon();
//打开数据库连接
con.Open();
//创建SqlCommand对象
SqlCommand com = new SqlCommand(sql, con);
try
{
//执行SQL语句
com.ExecuteNonQuery(); }
catch (Exception e)
{
//返回布尔值False
//return false;这里把异常屏蔽了。你肯定看不到。把这句话注释了。用下面那句
throw e;
}
finally
{
//关闭数据库连接
con.Close();
}
//返回布尔值True
return true;
}再次运行会给你提示错误信息!
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.NullReferenceException: 未将对象引用设置到对象的实例。源错误:
行 16: protected void Page_Load(object sender, EventArgs e)
行 17: {
行 18: barcode = Request.QueryString["stuBarCode"].ToString(); //获取对学生操作的方式
行 19: if (!IsPostBack) //判断是否是首次加载
行 20: {
这是我在insert into 语句后加入断点后调试的结果,第18行出错,但是看这个提示,我却不知道具体错误要怎么解决了。。barcode应该是在点击了“添加学生信息”之后就等于“add”的了,不然页面标题也不会显示“添加学生信息”呀。但是还是提示那里出错。
你已经测试出来了啊 很明显 你添加成功
Response.Write("<script>alert('设置成功!');window.opener.location.href=window.opener.location='stuInfo.aspx';window.close();</script>");返回的是 'stuInfo.aspx' 没有了stuBarCode参数!
barcode = Request.QueryString["stuBarCode"].ToString(); 肯定报错!当然执行到 pageload 就错了啊
barcode = Request.QueryString["stuBarCode"].ToString(); 为null
我是在stuInfo.aspx页面中点击了“添加学生信息”来打开的addstuInfo.aspx,此时应该有stuBarCode=='add'了,然后上面的那条语句中barcode可以得到这个'add'了呀,为什么还是空指针呢,难道是跟15楼的大牛所说的那样,在显示“设置成功”后打开的页面丢失了stuBarCode的参数吗?
不太懂没那个。。那如果出错的原因是“添加成功”后的那条语句丢失了stuBarCode的参数,那stuBarCode最开始的参数不是来自于前台代码中的“<a style="text-decoration:none;" href="#" onclick="window.open('addstuInfo.aspx?stuBarCode=add','','width=340,height=371');">添加学生信息</a>”的吗?为什么还跟后台代码中添加成功后返回的值有关系呢?
把这段话放到
if (!IsPostBack) //判断是否是首次加载
里面 不然页面刷新后barcode就肯定为null了
当然得在第一次加载stuManage_addstuInfo时取 不然你stuManage_addstuInfo页面一刷新Request.QueryString["stuBarCode"]就会报错
protected void Page_Load(object sender, EventArgs e)
{string barcode = "";这个也不应该放外面 不然你想一下 页面一刷新 barcode就为空,那你后面的判断肯定又要出问题
那如果string barcode = "";这个东西也放在里面的话,那不得在protected void btnSave_Click(object sender, EventArgs e)和 public void bindstuInfo()里面都在定义一次string barcode = "";?因为那两个模块里面都用到barcode的。。
session
bindstuInfo(string barcode) 方法传值
使用session来保存这个静态变量吗?具体怎么操作,能不能再说的详细点,本人在这方面比较空。。