niloofar21
دوشنبه 21 فروردین 1391, 11:52 صبح
سلام .
یه سوال دارم در مورد update و insert کردن اطلاعات داخل جداول. متاسفانه حالا که یه بخش بزرگ از کارمو انجام دادم متوجه شدم شاید برای insert بهتر بود از خود متد insert استفاده میکردم. روشی که باهاش کار کردم اینه که برای update یه دستور fill بررسی میشه که در واقع اگر چنین سطری از اطلاعات وجود داره که دستورات مربوط به ویرایش نوشته میشه و اگر وجود نداره سطر جدیدی ایجاد و اطلاعات به عنوان سطر جدید وارد میشن.این نمونه ای از دستوراتیه که استفاده کردم:
protected void BtnInsert_Click(object sender, EventArgs e)
{
DataRow MyRow = ds2.tSoftware_Details.NewRow();
MyRow[ds2.tSoftware_Details.fCityCodeColumn] = MyMethod().City;
MyRow[ds2.tSoftware_Details.fSoftwareCodeColumn] = DdlTypesoftware.SelectedValue.ToString();
MyRow[ds2.tSoftware_Details.fDatabaseTypeColumn] = TbxDatabase.Text.Trim();
MyRow[ds2.tSoftware_Details.fTecTypeColumn] = TbxTecType.Text.Trim();
LblMsg.Text = "رکورد جدید با موفقیت ذخیره شد.";
Clear();
BindGrid();
}
protected void BtnUpdate_Click(object sender, EventArgs e)
{
bool Success = sda2.FillBySoftwareCityCode(ds2.tSoftware_Details, Int32.Parse(MyMethod().City), Int32.Parse(DdlTypesoftware.SelectedValue.ToString ())) > 0;
if (Success)
{
ds2.tSoftware_Details.Rows[0][ds2.tSoftware_Details.fCityCodeColumn] = MyMethod().City;
ds2.tSoftware_Details.Rows[0][ds2.tSoftware_Details.fSoftwareCodeColumn] = DdlTypesoftware.SelectedValue.ToString();
ds2.tSoftware_Details.Rows[0][ds2.tSoftware_Details.fDatabaseTypeColumn] = TbxDatabase.Text.Trim();
ds2.tSoftware_Details.Rows[0][ds2.tSoftware_Details.fTecTypeColumn] = TbxTecType.Text.Trim();
LblMsg.Text = "تغییرات مورد نظر شما با موفقیت ذخیره شد.";
Clear();
BindGrid();
}
}
حالا مشکلم اینه که با این روش همه field ها حتی اون هایی که اجازه دارند خالی باشند (فیلدهای allow null) باید پر بشوند وگرنه روی خط مربوط به پر شدن آن فیلد error دریافت میکنم. بهترین راهکار برای حل این مشکل چیه؟
یه سوال دارم در مورد update و insert کردن اطلاعات داخل جداول. متاسفانه حالا که یه بخش بزرگ از کارمو انجام دادم متوجه شدم شاید برای insert بهتر بود از خود متد insert استفاده میکردم. روشی که باهاش کار کردم اینه که برای update یه دستور fill بررسی میشه که در واقع اگر چنین سطری از اطلاعات وجود داره که دستورات مربوط به ویرایش نوشته میشه و اگر وجود نداره سطر جدیدی ایجاد و اطلاعات به عنوان سطر جدید وارد میشن.این نمونه ای از دستوراتیه که استفاده کردم:
protected void BtnInsert_Click(object sender, EventArgs e)
{
DataRow MyRow = ds2.tSoftware_Details.NewRow();
MyRow[ds2.tSoftware_Details.fCityCodeColumn] = MyMethod().City;
MyRow[ds2.tSoftware_Details.fSoftwareCodeColumn] = DdlTypesoftware.SelectedValue.ToString();
MyRow[ds2.tSoftware_Details.fDatabaseTypeColumn] = TbxDatabase.Text.Trim();
MyRow[ds2.tSoftware_Details.fTecTypeColumn] = TbxTecType.Text.Trim();
LblMsg.Text = "رکورد جدید با موفقیت ذخیره شد.";
Clear();
BindGrid();
}
protected void BtnUpdate_Click(object sender, EventArgs e)
{
bool Success = sda2.FillBySoftwareCityCode(ds2.tSoftware_Details, Int32.Parse(MyMethod().City), Int32.Parse(DdlTypesoftware.SelectedValue.ToString ())) > 0;
if (Success)
{
ds2.tSoftware_Details.Rows[0][ds2.tSoftware_Details.fCityCodeColumn] = MyMethod().City;
ds2.tSoftware_Details.Rows[0][ds2.tSoftware_Details.fSoftwareCodeColumn] = DdlTypesoftware.SelectedValue.ToString();
ds2.tSoftware_Details.Rows[0][ds2.tSoftware_Details.fDatabaseTypeColumn] = TbxDatabase.Text.Trim();
ds2.tSoftware_Details.Rows[0][ds2.tSoftware_Details.fTecTypeColumn] = TbxTecType.Text.Trim();
LblMsg.Text = "تغییرات مورد نظر شما با موفقیت ذخیره شد.";
Clear();
BindGrid();
}
}
حالا مشکلم اینه که با این روش همه field ها حتی اون هایی که اجازه دارند خالی باشند (فیلدهای allow null) باید پر بشوند وگرنه روی خط مربوط به پر شدن آن فیلد error دریافت میکنم. بهترین راهکار برای حل این مشکل چیه؟