none
接“ADO.NET的问题请帮忙”继续的问题 RRS feed

  • 问题

  • 我的SQLEXPRESS这个是不是有问题?在Jiyuan指导下 ACCESS上可以运行了,但我主要是想在SQLEXPRESS上运行,我用同样的方法,//private SqlConnection Connection;
            //private SqlDataAdapter DataAdapter;
            //private SqlCommandBuilder Builder; 换成了SQL,奇怪的是我的程序好象是可以更新数据,我的程序调试的时候可以增加数据,关闭了重新打开数据还在,可是在VS中的数据库里没更新上去,还有就是我关闭了VS在打开运行数据就还原了,不知道怎么回事
    请大家指教,谢谢
    2009年9月13日 12:09

答案

  • 您好,我在原帖上回复了。
    按道理与Access是一样的。您也可以用Sql Server试试。
    个人不建议使用SqlCommandBuilder,性能上会有问题。在拖拽SqlDataAdapter时最好就设计好相关的4个Command。
    2009年9月13日 12:20

  • 参考这个例子
    DataSet ds = new DataSet();
            SqlConnection cn = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["blogsConnectionString"].ConnectionString);
            SqlDataAdapter da = new SqlDataAdapter("select i,d from t",cn);
            cn.Open();
          
            da.Fill(ds);
            
            da.UpdateCommand = new SqlCommand("update t set  d=@d, i=@i where d=123");
            da.UpdateCommand.Parameters.Add("@i", SqlDbType.VarChar,50, "i");
            da.UpdateCommand.Parameters.Add("@d", SqlDbType.Int, int.MaxValue, "d");
          DataTable dt = ds.Tables[0];
            var drs = dt.Select("d='123'");
            foreach (DataRow r in drs)
            {
                r.BeginEdit();
                r["d"] =456;
                r.EndEdit();
            }
             da.Update(ds); ds.AcceptChanges();  
     
         cn.Close();      
    2009年9月13日 15:30

全部回复

  • 您好,我在原帖上回复了。
    按道理与Access是一样的。您也可以用Sql Server试试。
    个人不建议使用SqlCommandBuilder,性能上会有问题。在拖拽SqlDataAdapter时最好就设计好相关的4个Command。
    2009年9月13日 12:20

  • 参考这个例子
    DataSet ds = new DataSet();
            SqlConnection cn = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["blogsConnectionString"].ConnectionString);
            SqlDataAdapter da = new SqlDataAdapter("select i,d from t",cn);
            cn.Open();
          
            da.Fill(ds);
            
            da.UpdateCommand = new SqlCommand("update t set  d=@d, i=@i where d=123");
            da.UpdateCommand.Parameters.Add("@i", SqlDbType.VarChar,50, "i");
            da.UpdateCommand.Parameters.Add("@d", SqlDbType.Int, int.MaxValue, "d");
          DataTable dt = ds.Tables[0];
            var drs = dt.Select("d='123'");
            foreach (DataRow r in drs)
            {
                r.BeginEdit();
                r["d"] =456;
                r.EndEdit();
            }
             da.Update(ds); ds.AcceptChanges();  
     
         cn.Close();      
    2009年9月13日 15:30
  • 你好,access与sqlserver在处理参数上有所不同!
    jon.valett@gmail.com
    2009年9月14日 2:45
    版主
  • 请问您的数据库文件放在什么地方?数据库是通过管理工具直接附加到数据库引擎上,还是通过连接字符串动态附加的?是否在每次编译的时候,都会从原始位置复制一份数据库文件(可能是VS的行为)到您的可执行文件所在目录?
    如果是动态附加的,您可以尝试修改数据库连接字符串,先指定一个您的原始数据库文件的绝对路径。



    理解的越多,需要记忆的就越少
    2009年9月14日 5:08
    版主