执行Access updata语句后更新不了数据
string Cmd = "UPDATE ContractInfo SET RemainDays=? WHERE ContractInfoID=?";OleDbParameter pa = new OleDbParameter("?", OleDbType.SmallInt);
OleDbParameter pb = new OleDbParameter("?", OleDbType.SmallInt);
int day = 23;
int id = 2;
pa.Value = iday;
pb.Value = id;
OleDbParameter[] all = { pa, pb };
DbHelperOleDb.ExecuteSql(Cmd,all);
执行语句后更新不了数据->求解? access,sql 数据库 --------------------编程问答-------------------- 顶顶,大侠快出来 解救哦 --------------------编程问答-------------------- 占位符用?,那你定义了两个?,怎么知道是哪个呢? --------------------编程问答--------------------
string Cmd = "UPDATE ContractInfo SET RemainDays=@iday WHERE ContractInfoID=@ContractInfoID";--------------------编程问答-------------------- access中的参数是可以这样定义的,是按顺序添加参数 --------------------编程问答-------------------- 这个方法是用来操作 access数据库的
SqlCommand Cmd = new SqlCommand(sb.ToString());
Cmd.Parameters.Add("@iday", SqlDbType.Int).Value = 1;
Cmd.Parameters.Add("@ContractInfoID", SqlDbType.Int).Value = 100;
Cmd.ExecuteNonQuery(Cmd);
--------------------编程问答-------------------- 如你所愿,我测试了一下,可以修改:
using (OleDbConnection conn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=ab.mdb;Persist Security Info=False"))
{
conn.Open();
OleDbCommand cmd = new OleDbCommand("UPDATE ContractInfo SET RemainDays=? WHERE ContractInfoID=?", conn);
OleDbParameter[] oleDbParameter = new OleDbParameter[]
{
new OleDbParameter("?",OleDbType.SmallInt),
new OleDbParameter("?",OleDbType.SmallInt)
};
oleDbParameter[0].Value = 23;
oleDbParameter[1].Value = 2;
cmd.Parameters.AddRange(oleDbParameter);
cmd.ExecuteNonQuery();
}
数据库ab.mdb放在bin/debug目录下。 --------------------编程问答--------------------
public static int ExecuteSql(string SQLString, params OleDbParameter[] cmdParms)
{
using (OleDbConnection connection = new OleDbConnection(connectionString))
{
using (OleDbCommand cmd = new OleDbCommand())
{
try
{
PrepareCommand(cmd, connection, null, SQLString, cmdParms);
int rows = cmd.ExecuteNonQuery();
cmd.Parameters.Clear();
return rows;
}
catch (System.Data.OleDb.OleDbException E)
{
throw new Exception(E.Message);
}
}
}
}
这个方法有问题吗?
--------------------编程问答-------------------- 就是 没反应。。。。恨啊,真不如sql2008 --------------------编程问答-------------------- 没看出问题,你可以单步调试看看究竟发生了什么。其实就是个习惯问题,多用用就好了。 --------------------编程问答-------------------- 嗯嗯 我再调调 O(∩_∩)O谢谢你 --------------------编程问答-------------------- 自己坑自己有木有啊。。。。。。数据库放在bin下面。。。。。。。 --------------------编程问答--------------------
和调试时生成的exe同一目录,可以不用在代码里写路径啊。
补充:.NET技术 , C#