推荐你用 CYQ.Data 数据框架 来操作数据库,就不会有这么让人头疼的代码产生了。

解决方案 »

  1.   

    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
      

  2.   


    请问一下,这个是一个软件吗?用来操作sql数据库的?
      

  3.   

    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>");
    }
      

  4.   


    应该没有执行空的语句啊,开始的那个只是定义sql的类型,在IF语句里面的才是sql执行语句的吧~
      

  5.   

    你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;
      }再次运行会给你提示错误信息!
      

  6.   

    未将对象引用设置到对象的实例。 
    说明: 执行当前 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”的了,不然页面标题也不会显示“添加学生信息”呀。但是还是提示那里出错。
      

  7.   


    你已经测试出来了啊   很明显 你添加成功
     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 就错了啊
      

  8.   

    空指针
    barcode = Request.QueryString["stuBarCode"].ToString(); 为null
      

  9.   


    我是在stuInfo.aspx页面中点击了“添加学生信息”来打开的addstuInfo.aspx,此时应该有stuBarCode=='add'了,然后上面的那条语句中barcode可以得到这个'add'了呀,为什么还是空指针呢,难道是跟15楼的大牛所说的那样,在显示“设置成功”后打开的页面丢失了stuBarCode的参数吗?
      

  10.   


    不太懂没那个。。那如果出错的原因是“添加成功”后的那条语句丢失了stuBarCode的参数,那stuBarCode最开始的参数不是来自于前台代码中的“<a style="text-decoration:none;" href="#" onclick="window.open('addstuInfo.aspx?stuBarCode=add','','width=340,height=371');">添加学生信息</a>”的吗?为什么还跟后台代码中添加成功后返回的值有关系呢?
      

  11.   

    barcode = Request.QueryString["stuBarCode"].ToString();
    把这段话放到
    if (!IsPostBack) //判断是否是首次加载
    里面 不然页面刷新后barcode就肯定为null了
      

  12.   

    stuBarCode这个值是你根据前一个页面上传过来的
    当然得在第一次加载stuManage_addstuInfo时取 不然你stuManage_addstuInfo页面一刷新Request.QueryString["stuBarCode"]就会报错
      

  13.   

    string barcode = "";
      protected void Page_Load(object sender, EventArgs e)
      {string barcode = "";这个也不应该放外面 不然你想一下 页面一刷新 barcode就为空,那你后面的判断肯定又要出问题
      

  14.   


    那如果string barcode = "";这个东西也放在里面的话,那不得在protected void btnSave_Click(object sender, EventArgs e)和 public void bindstuInfo()里面都在定义一次string barcode = "";?因为那两个模块里面都用到barcode的。。
      

  15.   

    设置公共静态变量
    session
     bindstuInfo(string barcode)  方法传值
      

  16.   


    使用session来保存这个静态变量吗?具体怎么操作,能不能再说的详细点,本人在这方面比较空。。
      

  17.   

    我是说可以使用公共静态变量或者放session或者调方法时传值