PDA

View Full Version : سوال: فرستادن پارامتر به CommandBuilder؟



majid325
جمعه 29 شهریور 1387, 16:27 عصر
سلام
زماني كه متد Update ديتاآداپتور رو صدا ميزنم تغيرات اعمال ميشه ولي ركورد هاي كه insert شدن فيلد Id شون مقداري دريافت نميكنه(فيلد id بايد توسط خودم مقدار دهي شه) حالا به چه صورت ميتونم فيلد id رو به صورت پارامتر به CommandBuilder بفرستم؟

SMRAH1
جمعه 29 شهریور 1387, 16:54 عصر
اگر id به صورت Auto باشد.حتی اگر شما آن را مقدار دهی کنید،باز هم در پایگاه داده به شکل مناسب مقدار دهی می شود.به عبارت دیگر مقدار id (در این حالت) تغییر می کند و آن چیزی می شود که پایگاه داده می خواهد و نه آن مقداری که شما تنظیم کرده اید.
اما اگر به صورت خودکار نباشه،شما می توانید مانند هر فیلد دیگری تنظیمش کنید و بعد از Update به روز خواهد شد.
اگر می خواهید دستور insert (در sql )برای به روز رسانی database بنویسید که دارای id خودکار است.در دستور باید از مقدار id صرف نظر کنید.(فرض کنید اصلا چنین فیلدی موجود نیست) و دستور SQL خودر ا بنویسید.

موفق باشید

majid325
جمعه 29 شهریور 1387, 17:10 عصر
با تشكر
اگر دقت كرده باشيد من دارم از CommandBuilder استفاده ميكنم جهت آپديت dataGrid و از Command هاي كه CommandBuilder برام ميسازه دارم استفاده ميكنم.
در اين جدول ID كليد اصلي نيست ولي FK هستش ومن بايد مقدار دهي بكنمش.

xxxxxxxxxx
جمعه 29 شهریور 1387, 18:06 عصر
كدخودرابگذاري بهتر جواب ميگيري.

majid325
جمعه 29 شهریور 1387, 18:27 عصر
اينم 10 تا كاركتر...


private int FillDEMOGRAPHY()
{
try
{

string strSelect = "SELECT Tb_DEMOGRAPHY.DEMOGRAPHY_DEMOGRAPHY_CODE,Tb_DEMOGR APHY.DEMOGRAPHY_ROW_NUMBER, Tb_DEMOGRAPHY.DEMOGRAPHY_FAMILY_MEMBER_NAME, Tb_DEMOGRAPHY.DEMOGRAPHY_SEX, Tb_DEMOGRAPHY.DEMOGRAPHY_BIRTHDATE, Tb_DEMOGRAPHY.DEMOGRAPHY_AGE, Tb_DEMOGRAPHY.DEMOGRAPHY_BURDEN, Tb_DEMOGRAPHY.DEMOGRAPHY_LENGTH, Tb_DEMOGRAPHY.DEMOGRAPHY_KINSHIP, Tb_DEMOGRAPHY.DEMOGRAPHY_HABITANCY_LIFE, Tb_DEMOGRAPHY.DEMOGRAPHY_WOMANKIND_STATE, Tb_DEMOGRAPHY.DEMOGRAPHY_PROTECTOR FROM Tb_DEMOGRAPHY Where DEMOGRAPHY_DEMOGRAPHY_CODE = '" + this.txbMaster_CODE.Text + "';";
this.daOleDEMOGRAPHY.SelectCommand = new OleDbCommand(strSelect, this.cnnOle);
this.daOleDEMOGRAPHY.Fill(this.dtDEMOGRAPHY);

dataGridViewXDemo.Columns["DEMOGRAPHY_DEMOGRAPHY_CODE"].DataPropertyName = "DEMOGRAPHY_DEMOGRAPHY_CODE";
dataGridViewXDemo.Columns["DEMOGRAPHY_FAMILY_MEMBER_NAME"].DataPropertyName = "DEMOGRAPHY_FAMILY_MEMBER_NAME";
dataGridViewXDemo.Columns["DEMOGRAPHY_SEX"].DataPropertyName = "DEMOGRAPHY_SEX";
dataGridViewXDemo.Columns["DEMOGRAPHY_BIRTHDATE"].DataPropertyName = "DEMOGRAPHY_BIRTHDATE";
dataGridViewXDemo.Columns["DEMOGRAPHY_AGE"].DataPropertyName = "DEMOGRAPHY_AGE";
dataGridViewXDemo.Columns["DEMOGRAPHY_BURDEN"].DataPropertyName = "DEMOGRAPHY_BURDEN";
dataGridViewXDemo.Columns["DEMOGRAPHY_LENGTH"].DataPropertyName = "DEMOGRAPHY_LENGTH";
dataGridViewXDemo.Columns["DEMOGRAPHY_KINSHIP"].DataPropertyName = "DEMOGRAPHY_KINSHIP";
dataGridViewXDemo.Columns["DEMOGRAPHY_HABITANCY_LIFE"].DataPropertyName = "DEMOGRAPHY_HABITANCY_LIFE";
dataGridViewXDemo.Columns["DEMOGRAPHY_WOMANKIND_STATE"].DataPropertyName = "DEMOGRAPHY_WOMANKIND_STATE";
dataGridViewXDemo.Columns["DEMOGRAPHY_PROTECTOR"].DataPropertyName = "DEMOGRAPHY_PROTECTOR";


this.dataGridViewXDemo.AutoGenerateColumns = false;
this.dataGridViewXDemo.DataSource = dtDEMOGRAPHY;

return 1;
}
catch (OleDbException ex)
{
MessageBox.Show(ex.Message);
return 0;
}

}
-----------------------------------------------------------------------------------------------------
private void buttonX1_Click(object sender, EventArgs e)
{
try
{

cbole = new OleDbCommandBuilder(daOleDEMOGRAPHY);


this.daOleDEMOGRAPHY.Update(dtDEMOGRAPHY);


}
catch (OleDbException ex)
{
MessageBox.Show(ex.Message + "\n" + ex.Source + "\n" + ex.Errors ,"خطا");
}
}

xxxxxxxxxx
شنبه 30 شهریور 1387, 02:40 صبح
ببین این بدردت می خوره؟
http://barnamenevis.org/forum/showthread.php?p=494083#post494083
الهی بمحمد بمحمد ...

majid325
شنبه 30 شهریور 1387, 04:44 صبح
ببین این بدردت می خوره؟
http://barnamenevis.org/forum/showthread.php?p=494083#post494083
الهی بمحمد بمحمد ...

ببين دستت درد نكنه ولي من مشكلي با كدم ندارم يعني همون كاري رو كه بايد انجام بده ،ميده.
ولي ميخوام هر موقع عمل insert انجام شد ، يه فيلد كه كليد خارجي هم هست با مقدار يك txt كه روي فرم هست پر بشه يعني يه جوري با يه پارامتري مقدار txt رو بهش ارسال كنم.

majid325
شنبه 30 شهریور 1387, 05:27 صبح
آخرش هم مجبور شدم اين كار رو بكنم (كد زير) ولي اگه كسي روشش صحيح هش رو پيدا كرد اينجا بزاره(با تشكر) و به من يك پيغام خصوصي بده تا متوجه بشم (بازم تشكر) ويه تشكر ديگه از بقيه كه سعي كردن به من كمك كنن.

foreach (DataGridViewRow drw in dataGridViewXDemo.Rows)
drw.Cells["DEMOGRAPHY_DEMOGRAPHY_CODE"].Value = txbMaster_CODE.Text;