PDA

View Full Version : ویرایش یک رکورد از دیتا گرید



armina_maleki_89
دوشنبه 04 خرداد 1388, 18:51 عصر
می خوام یک رکورد را در data grid view انتخاب کنم و محتوای فیلدهایش را تغییر بدهم و بعد update کنم .لطفا دقیقا برام توضیح بدین ، چیکار باید بکنم، در ضمن کدهایش را هم به طور کامل می خواهم
این یک درخواست فوری است، یک دنیا ممنون میشم که جواب دهید

h_r_sh
دوشنبه 04 خرداد 1388, 21:52 عصر
dataset ds;
string connectionstring;
sqlconnection con;
sqlparameter[] param;
sqldataadapter da;

public form1(){
initializecomponent();
ds=new dataset();
param=new sqlparameter[2];
param[0]=new sqlparameter("@a",sqldbtype.varchar);
param[0].value="c#";
param[1]=new sqlparameter("@b",sqldbtype.varchar);
param[1].value="update_example";
con=new sqlconnection();
connectionstring="my connection string";
con.connectionstring=connectionstring;
da=new sqldataadapter();
da.selectcommand.commandtext="select * from table";
da.selectcommand.connection=con;
da.selectcommand.commandtype=commandtype.text;
da.selectcommand.parameters.addrange(param);

// field1 & field2 are column name.
da.updatecommand.connection=con;
da.updatecommand.commandtext=@"update my_table set [field1]=@a, [field2]=@b where ([field1]=@aa) and (field2=@bb);
da.updatecommand.parameter.addrange(new sqlparameter[] {
new sqlparameter("@a",sqldbtype.varchar,0,"field1"),
new sqlparameter("@b",sqldbtype.varchar,0,"field2"),
new sqlparameter("@aa",sqldbtype.varchar,0,parameterdirection.input,true ,((byte)(0)),((byte)(0)),"field1",datarowversion.original,null),
new sqlparameter("@bb",sqldbtype.varchar,0,parameterdirection.input,true ,((byte)(0)),((byte)(0)),"field2",datarowversion.original,null)});}

private void form1_load(object sender, eventargs e){
da.fill(ds,"my_table");
mydatagridview.datasource=ds.table[0];}

private void btnUpdate_click(object sender, eventargs e){
da.update(ds);}

mosafer_deltang
یک شنبه 10 خرداد 1388, 19:40 عصر
اگه ممکنه یه کم بیشتر در مورد کد توضیح بدین و این که sqlparameter با اون آرگومان های عجیب غریب چی کار میکنه؟

mostafa_shaeri_tj
دوشنبه 23 فروردین 1389, 13:53 عصر
سلام.

من از کد بالا استفاده کردم و جواب داد.

اما فقط اگر رکورد اول رو ویرایش کنی جواب میده. یعنی وقتی رکورد دوم و یا بعدی ها رو (حتی به تنهایی) ویرایش کنم این خطا رو برمیگردونه :

Concurrency violation: the UpdateCommand affected 0 of the expected 1 records.

ممکنه بفرمایید مشکل از کجاست؟ خودم نتونستم حلش کنم.

meri_rad
چهارشنبه 25 فروردین 1389, 13:57 عصر
ميشه يكي روش انجام اين كار رو توضيح بده