以下是代码:
private SqlConnection conn = null;
private SqlDataAdapter sda = null;
private const string DRIVER = "server = erp05;database=free;uid=sa;pwd=123456";
private DataSet ds = new DataSet();
private void Form2_Load(object sender, EventArgs e)
{
conn = new SqlConnection(DRIVER);
SqlCommand cmd = new SqlCommand();
cmd.Connection = conn;
cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandText = "proc_requirement";
SqlParameter[] spa =
{
new SqlParameter ("@C1",SqlDbType.VarChar,20 ),
new SqlParameter ("@C2",SqlDbType.VarChar,100 ),
new SqlParameter ("@C4",SqlDbType.VarChar,20 ),
new SqlParameter ("@C5",SqlDbType.VarChar,30 ),
new SqlParameter ("@C6",SqlDbType.VarChar,100 ),
new SqlParameter ("@C15",SqlDbType.VarChar,200 ),
new SqlParameter ("@C22",SqlDbType.VarChar,20 ),
new SqlParameter ("@C31",SqlDbType.VarChar,50 )
};
spa[0].Value = C1.Text;
spa[1].Value = C2.Text;
spa[2].Value = C4.Text;
spa[3].Value = C5.Text;
spa[4].Value = C6.Text;
spa[5].Value = C15.Text;
spa[6].Value = C22.Text;
spa[7].Value = C31.Text;
cmd.Parameters.AddRange(spa); //把参数添加到cmd中
sda = new SqlDataAdapter();
sda.SelectCommand = cmd; //把cmd赋值给sda的内置SelectCommand对象
//DataSet ds = new DataSet();
sda.Fill(ds,"table");
this.dataGridView1.DataSource = ds.Tables["table"];
}
private bool BtnUpdate()
{
SqlParameter para = new SqlParameter();
sda.UpdateCommand = conn.CreateCommand();
StringBuilder SqlUpdate = new StringBuilder();
SqlUpdate.Append("update requirement set C1=@C1,C2=@C2,C3=@C3,C4=@C4,C5=@C5,C6=@C6,C7=@C7,C8=@C8,C9=@C9,C10=@C10, ");
SqlUpdate.Append(" C11=@C11,C12=@C12,C13=@C13,C14=@C14,C15=@C15,C16=@C16,C17=@C17,C18=@C18,C19=@C19,C20=@C20,");
SqlUpdate.Append(" C21=@C21,C22=@C22,C23=@C23,C24=@C24,C25=@C25,C26=@C26,C27=@C27,C28=@C28,C29=@C29,C30=@C30,");
SqlUpdate.Append(" C31=@C31,C32=@C32,C33=@C33,C34=@C34,C35=@C35,C36=@C36 where InterID = @InterID");
sda.UpdateCommand.CommandText = SqlUpdate.ToString ();
sda.UpdateCommand .Parameters .Add ("@C1",SqlDbType .VarChar ,20,"工程编号");
sda.UpdateCommand .Parameters .Add ("@C2",SqlDbType .VarChar ,100,"设备名称");
sda.UpdateCommand .Parameters .Add ("@C3",SqlDbType .DateTime ,10,"日期");
sda.UpdateCommand .Parameters .Add ("@C4",SqlDbType .VarChar ,20,"物控员");
sda.UpdateCommand .Parameters .Add ("@C5",SqlDbType .VarChar ,30,"物料编号");
sda.UpdateCommand .Parameters .Add ("@C6",SqlDbType .VarChar ,100,"物料名称");
sda.UpdateCommand .Parameters .Add ("@C7",SqlDbType .VarChar ,100,"物料规格");
sda.UpdateCommand .Parameters .Add ("@C8",SqlDbType .VarChar ,100,"物料型号");
sda.UpdateCommand .Parameters .Add ("@C9",SqlDbType .VarChar ,20,"物料品牌");
sda.UpdateCommand .Parameters .Add ("@C10",SqlDbType .Int ,4,"配料数量");
sda.UpdateCommand .Parameters .Add ("@C11",SqlDbType .VarChar ,20,"单位");
sda.UpdateCommand .Parameters .Add ("@C12",SqlDbType .Int ,4,"配件单套数");
sda.UpdateCommand .Parameters .Add ("@C13",SqlDbType .Int ,4,"总需求数量");
sda.UpdateCommand .Parameters .Add ("@C14",SqlDbType .DateTime ,10,"需求日期");
sda.UpdateCommand .Parameters .Add ("@C15",SqlDbType .VarChar ,200,"备注");
sda.UpdateCommand .Parameters .Add ("@C16",SqlDbType .VarChar ,30,"申购单号");
sda.UpdateCommand .Parameters .Add ("@C17",SqlDbType .Int ,4,"申购欠数");
sda.UpdateCommand .Parameters .Add ("@C18",SqlDbType .VarChar ,30,"申购工程");
sda.UpdateCommand .Parameters .Add ("@C19",SqlDbType .DateTime ,10,"采购下单日期");
sda.UpdateCommand .Parameters .Add ("@C20",SqlDbType .VarChar ,30,"采购PO号码");
sda.UpdateCommand .Parameters .Add ("@C21",SqlDbType .DateTime ,10,"采购回复到货日期");
sda.UpdateCommand .Parameters .Add ("@C22",SqlDbType .VarChar ,20,"采购员");
sda.UpdateCommand .Parameters .Add ("@C23",SqlDbType .DateTime ,10,"实际到货日期");
sda.UpdateCommand .Parameters .Add ("@C24",SqlDbType .Int ,4,"到货数量");
sda.UpdateCommand .Parameters .Add ("@C25",SqlDbType .VarChar ,10,"入仓点");
sda.UpdateCommand .Parameters .Add ("@C26",SqlDbType .DateTime ,10,"发料日期");
sda.UpdateCommand .Parameters .Add ("@C27",SqlDbType .Int ,4,"发料数量");
sda.UpdateCommand .Parameters .Add ("@C28",SqlDbType .VarChar ,10, "发料员");
sda.UpdateCommand .Parameters .Add ("@C29",SqlDbType .Int ,4,"尚欠数量");
sda.UpdateCommand .Parameters .Add ("@C30",SqlDbType .VarChar ,10,"设计员");
sda.UpdateCommand .Parameters .Add ("@C31",SqlDbType .VarChar ,20,"BOM编号");
sda.UpdateCommand .Parameters .Add ("@C32",SqlDbType .VarChar ,10,"生产地点");
sda.UpdateCommand .Parameters .Add ("@C33",SqlDbType .VarChar ,10,"生产组别");
sda.UpdateCommand.Parameters.Add("@C34", SqlDbType.VarChar, 10, "申购部门");
sda.UpdateCommand.Parameters.Add("@C35", SqlDbType.DateTime , 10, "生产完成日期");
sda.UpdateCommand.Parameters.Add("@C36", SqlDbType.VarChar, 10, "状态");
para = sda.UpdateCommand.Parameters.Add("@InterID", SqlDbType.Int, 4, "内码");
para.SourceVersion = DataRowVersion.Original;
//sda.Fill(ds);
int count = sda.Update(ds,"table");
//ds.Clear();
bool result = count > 0 ? true : false;
return result;
}
private void toolStripButton10_Click(object sender, EventArgs e)
{
if (this.BtnUpdate())
{
//Form2_Load(sender, e);
MessageBox.Show("修改成功", "提示:");
}
else
{
//Form2_Load(sender, e);
MessageBox.Show("修改失败", "提示:");
}
}
6 个解决方案
#1
问题没提清楚,鉴定完毕。
#2
因为不失去焦点,是不会向DataTable中写数据的,但可以通过.EndEdit()等方法来强制刷新数据。
#3
自己先分析的,然后找重点提的
#4
gridview.endedit();
加一句试试.
加一句试试.
#5
问题补充
行号 第一列 第二列
1 A E
2 B F
3 C G
如果修改第一行的内内容,必须把光标移到第二行或第三行才能修改成功,就算移到第二列也不行。
行号 第一列 第二列
1 A E
2 B F
3 C G
如果修改第一行的内内容,必须把光标移到第二行或第三行才能修改成功,就算移到第二列也不行。
#6
实际问题要实际解决啊!确实不清楚
#1
问题没提清楚,鉴定完毕。
#2
因为不失去焦点,是不会向DataTable中写数据的,但可以通过.EndEdit()等方法来强制刷新数据。
#3
自己先分析的,然后找重点提的
#4
gridview.endedit();
加一句试试.
加一句试试.
#5
问题补充
行号 第一列 第二列
1 A E
2 B F
3 C G
如果修改第一行的内内容,必须把光标移到第二行或第三行才能修改成功,就算移到第二列也不行。
行号 第一列 第二列
1 A E
2 B F
3 C G
如果修改第一行的内内容,必须把光标移到第二行或第三行才能修改成功,就算移到第二列也不行。
#6
实际问题要实际解决啊!确实不清楚