[WebMethod(Description = "接收日志记录")] public DataSet GetDataset(string SQL) { #region 将UserLog复制并改为带当前日期的MDB string NowDate = DateTime.Now.ToString("yyyy-MM-dd"); string[] jie = NowDate.Split('-'); string sourceFile = AppDomain.CurrentDomain.BaseDirectory + "\\App_Data\\UserLog.mdb"; string targetFile = AppDomain.CurrentDomain.BaseDirectory + "\\App_Data\\UserLog" + jie[0] + jie[1] + jie[2] + ".mdb"; if (File.Exists(targetFile) == false) { File.Copy(sourceFile, targetFile); } #endregion Connstr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+targetFile+";Persist Security Info=False"; OleDbConnection MyConn = new OleDbConnection(Connstr); try { MyConn.Open(); OleDbDataAdapter MyCommand = new OleDbDataAdapter(SQL, MyConn); OleDbCommand Mycmd = new OleDbCommand(SQL, MyConn); Mycmd.ExecuteNonQuery(); DataSet ds = new DataSet(); MyCommand.Fill(ds); MyConn.Close(); return ds; } catch (Exception ex) { throw ex; } }
以上webservice代码为何不能更新数据库?我用的是winform端调用的websevice,SQL的值为"insert into user_log(类型,用户名) values ('" + lx + "','" + yhm + "') ";
用SQL Server Profiler监测一下最终执行的SQL语句是什么?
有什么错误提示吗?
没有提示,就是数据不能添加到webservice端的数据库中
string sqlText1 = "select * from user_log "; OleDbConnection conn = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + textBoxRizhi.Text + ";Persist Security Info=False"); OleDbDataAdapter oledb = new OleDbDataAdapter(sqlText1, conn); DataTable dtyuan = new DataTable(); oledb.Fill(dtyuan); string lx=dtyuan.Columns["类型"].ToString(); string yhm = dtyuan.Columns["用户名"].ToString(); string sqlSer = "update user_log set 类型='" + lx + "',用户名='" + yhm + "'"; DataSet ds = ts.GetDataset(sqlSer); oledb.Fill(ds); dataGridView1.DataSource=ds.Tables[0];
这是winform客户端的代码,这样写可以吗?运行了一下,webservice端的数据库不能更新.
你是否调到了webserivce?
webservice和数据库是没什么直接关系的。