SqlDataAdapter da = new SqlDataAdapter("select * from command;", TheConnection);
cmd.CommandText = "insert into command values(?,?,?,?);";
cmd.Parameters.Add("@a", SqlDbType.Int);
cmd.Parameters.Add("@b", SqlDbType.VarChar);
cmd.Parameters.Add("@c", SqlDbType.Int);
cmd.Parameters.Add("@d", SqlDbType.Date);
da.InsertCommand = cmd;
DataSet ds = new DataSet();
da.Fill(ds);
DataTable dt = ds.Tables[0];
dt.PrimaryKey = new DataColumn[] { dt.Columns["ID"] };
DataRow dr = null;
for (int i = 0; i < 10;i++ )
{
dr = dt.NewRow();
dr["id"] = i+1;
dr["name"] = "huihui";
dr["age"] = 20+i;
dr["intime"] = System.DateTime.Today;
ds.Tables[0].Rows.Add(dr);
}
da.Update(ds);
da.Dispose();
---------------------------------------------
da.Update(ds);执行以后是向数据库里有插入语句的操作 ,但是插入的都是NULL值
报错 属性不能为空。 谢谢!!!!
cmd.CommandText = "insert into command values(?,?,?,?);";
cmd.Parameters.Add("@a", SqlDbType.Int);
cmd.Parameters.Add("@b", SqlDbType.VarChar);
cmd.Parameters.Add("@c", SqlDbType.Int);
cmd.Parameters.Add("@d", SqlDbType.Date);
da.InsertCommand = cmd;
DataSet ds = new DataSet();
da.Fill(ds);
DataTable dt = ds.Tables[0];
dt.PrimaryKey = new DataColumn[] { dt.Columns["ID"] };
DataRow dr = null;
for (int i = 0; i < 10;i++ )
{
dr = dt.NewRow();
dr["id"] = i+1;
dr["name"] = "huihui";
dr["age"] = 20+i;
dr["intime"] = System.DateTime.Today;
ds.Tables[0].Rows.Add(dr);
}
da.Update(ds);
da.Dispose();
---------------------------------------------
da.Update(ds);执行以后是向数据库里有插入语句的操作 ,但是插入的都是NULL值
报错 属性不能为空。 谢谢!!!!
sql 的参数应该是 @参数名 形式
确保数据库允许插入空值
insert 语句正确,sql的参数写的也正确 粘贴的时候错了
有主键 所以不能插入空值
但是就是update的时候插入的都是NULL
SqlDataAdapter da = new SqlDataAdapter("select * from command;", TheConnection);
da.InsertCommand=new OscarCommand("insert into command values(?,?,?,?);",TheConnection);
OscarParameter sp1 = da.InsertCommand.Parameters.Add("@a", OscarDbType.Int);
sp1.SourceColumn = "id";
OscarParameter sp2 = da.InsertCommand.Parameters.Add("@b", OscarDbType.VarChar);
sp2.SourceColumn = "name";
OscarParameter sp3 = da.InsertCommand.Parameters.Add("@c", OscarDbType.Int);
sp3.SourceColumn = "age";
OscarParameter sp4 = da.InsertCommand.Parameters.Add("@d", OscarDbType.Date);
sp4.SourceColumn = "intime";
其中parameter还有个属性SourceVersion也很重要
以前驱动是OSCAR数据库的,改下类就是SQLserver的