1、Conn=new SqlConnection("server=localhost;database=grade;uid=sa;pwd='e'");这句话明明是连的一个事实上不存在的SQLSERVER数据库,为什么我可以正确运行,而且在所示的界面上可以输入并添加记录。当然,回过头去看ACCESS数据库,里面却没有添加上任何东西,也就是说程序并没有连到grade这个ACCESS数据库。数据库既然没正确连接,为什么我可以运行程序?有没有连到你的sql server上?查一下它的表有没有新纪录。

解决方案 »

  1.   

    2、  我看到Comm.Connection.Open()和Comm.Connection.Close()两句话。我想问的是,在什么时候需要open,什么时候需要close?所有的都需要open,除了:
    在用DataAdapter Fill一个DataSet的时候,如果没有Open DataAdapter的Connection,它回自己打开再关上;如果已经开了,它不会关上。建议Close,不过不Close也没关系,会自己CollectGarbage
      

  2.   

    3、String strSQL="insert into grade values (@SNO,@SName,@SGRE)";//1
         SqlCommand Comm=new SqlCommand(strSQL,Conn);//2
         Comm.Parameters.Add(new SqlParameter("@SNO",SqlDbType.Int));//3
         Comm.Parameters["@SNO"].Value=ProductName.Text;//4
          我不明白第1句和第3句话。@SNO,@SName,@SGRE三个变量在其他地方都没定义过,就直接使用能行吗?第3句话是什么意思?是在定义变量吗?刚才我问了这个问题,但别人说得太简单了,没明白。我有点笨哦。//1 这三个东西是在一个String里,并不是C#的变量,所以不存在声明的问题。
    //3 在定义SqlCommand的Parameter
    //4 然后,在SqlServer里,@SNO @SName @SGRE这些会被解释为变量
      

  3.   

    athossmth(athos) 回答非常圆满,无话可说!