因为需要不能用dataadapter更新数据库,所以手动写更新代码。
程序运行不报错,但是数据库无法更新,不知何故。
DataTable update = dt.GetChanges(DataRowState.Modified);
DateTime begin = DateTime.Now;
int count_xiugai=0;
if (update == null)
{
MessageBox.Show("你还没输成绩的哇!");
}
else
{
//count_xiugai = da.Update(update);
//自编写回数据库代码
int columnmodifi_num=update.Columns.Count-5;
int columnindex_num = 5;
string[] columnmodifi_name = new string[2] ;
for (int i = 0; i < columnmodifi_num; i++)
{ columnmodifi_name[i] = update.Columns[columnindex_num].ColumnName.ToString();
columnindex_num = columnindex_num+1;
}
int nianjinum=Convert.ToInt32( nianji.Text.Trim());
foreach (DataRow dr in update.Rows)
{
string udcmd = "update scores_cz set @xueke= " + dr[5].ToString() + " where 考号= " + dr[4].ToString();
SqlCommand updatecmd = new SqlCommand(udcmd, conn);
//SqlCommand updatecmd=new SqlCommand("update scores_cz set @xueke=77 where 考号=7090001",conn);
updatecmd.Parameters.Clear();
updatecmd.Parameters.Add(new SqlParameter("@xueke", SqlDbType.NVarChar, 20));
//updatecmd.Parameters["@xueke"].Value = "语文A";
//updatecmd.Parameters.Add(new SqlParameter("@xueke", SqlDbType.NVarChar));
updatecmd.Parameters["@xueke"].Value = columnmodifi_name[0].ToString();
count_xiugai=updatecmd.ExecuteNonQuery();
}
程序运行不报错,但是数据库无法更新,不知何故。
DataTable update = dt.GetChanges(DataRowState.Modified);
DateTime begin = DateTime.Now;
int count_xiugai=0;
if (update == null)
{
MessageBox.Show("你还没输成绩的哇!");
}
else
{
//count_xiugai = da.Update(update);
//自编写回数据库代码
int columnmodifi_num=update.Columns.Count-5;
int columnindex_num = 5;
string[] columnmodifi_name = new string[2] ;
for (int i = 0; i < columnmodifi_num; i++)
{ columnmodifi_name[i] = update.Columns[columnindex_num].ColumnName.ToString();
columnindex_num = columnindex_num+1;
}
int nianjinum=Convert.ToInt32( nianji.Text.Trim());
foreach (DataRow dr in update.Rows)
{
string udcmd = "update scores_cz set @xueke= " + dr[5].ToString() + " where 考号= " + dr[4].ToString();
SqlCommand updatecmd = new SqlCommand(udcmd, conn);
//SqlCommand updatecmd=new SqlCommand("update scores_cz set @xueke=77 where 考号=7090001",conn);
updatecmd.Parameters.Clear();
updatecmd.Parameters.Add(new SqlParameter("@xueke", SqlDbType.NVarChar, 20));
//updatecmd.Parameters["@xueke"].Value = "语文A";
//updatecmd.Parameters.Add(new SqlParameter("@xueke", SqlDbType.NVarChar));
updatecmd.Parameters["@xueke"].Value = columnmodifi_name[0].ToString();
count_xiugai=updatecmd.ExecuteNonQuery();
}
2、如果不用@xueke变量,直接用字段名,则成功更新数据库。
大侠看看,难道我的Parameters 用错了?