PDA

View Full Version : سوال: مشکل در حذف از جدول



masoud.a
یک شنبه 10 اردیبهشت 1396, 09:10 صبح
سلام.
توسط DataSet و TableAdapter با دیتابیس ارتباط برقرار میکنم.
میخواهم با زدن دکمه Delete کیبورد سطر از دیتاگرید حذف بشه و همزمان از دیتابیس.
ولی بعد از حذف این ایراد رو میگیره:System.NullReferenceException: 'Object reference not set to an instance of an object

کوئری مربوط به حذف در TableAdapter:

DELETE FROM [dbo].[tbl_Karmand] WHERE ([CodeKardamand] = @id)

کد رویداد UserDeletingRow به این صورت نوشته شده:

if (MessageBox.Show("sure?", "warning", MessageBoxButtons.YesNo) == DialogResult.Yes)
{
tbl_KarmandTableAdapter.DeleteQuery(dataGridView1. SelectedRows[0].Cells[0].Value.ToString());

}
else
e.Cancel = true;

چرا وقتی دکمه حذف را میزنم با این ارور مواجه میشم؟

danialafshari
یک شنبه 10 اردیبهشت 1396, 10:08 صبح
با سلام
CodeKardamand عددی هست یا رشته؟
اگر عددی هست بایدم خطا بزنه
به این شکل تغییر بدید:

tbl_KarmandTableAdapter.DeleteQuery(Convert.ToInt3 2(dataGridView1[0, dataGridView1.CurrentRow.Index].Value));

موفق باشید

masoud.a
یک شنبه 10 اردیبهشت 1396, 10:59 صبح
با سلام
CodeKardamand عددی هست یا رشته؟
اگر عددی هست بایدم خطا بزنه
به این شکل تغییر بدید:

tbl_KarmandTableAdapter.DeleteQuery(Convert.ToInt3 2(dataGridView1[0, dataGridView1.CurrentRow.Index].Value));

موفق باشید

ممنون از جوابتون.ولی این کد برای convert درسته؟
بعد اینکه CodeKarmand بصورت nvarchar در دیتابیس ذخیره شده

ژیار رحیمی
یک شنبه 10 اردیبهشت 1396, 14:21 عصر
سلام.دوست گرامی با توضیحات شما مشخصه که مشکل از کد حذف کردن نیست کد به درستی عمل میکند خطای


System.NullReferenceException: 'Object reference not set to an instance of an object

مربوط به سمت sql server هست شما جدول (جداولی ) در دیتابیس داری که در آن کلید جدول کارمند در آنها به عنوان کلید خارجی درج شده است.در پروسیجر سمت sql server قبل از حذف رکورد کارمند باید رکورد های وابسته به رکورد مورد نظر خذف کنی سپس رکورد کارمند حذف شود.و یا راه دیگر آن در بخش پراپتی ارتباطات بین جداول هم می توانی شرایط خذف رکورد رو مشخص کنی که در صورت حذف رکوردی از جدول کارمند تمام رکوردهای مربوطه در جداول دیگر حذف شوند یا بجای کلید خارجی آن مقدار null قرار گیرد.

masoud.a
دوشنبه 11 اردیبهشت 1396, 10:21 صبح
سلام.دوست گرامی با توضیحات شما مشخصه که مشکل از کد حذف کردن نیست کد به درستی عمل میکند خطای

مربوط به سمت sql server هست شما جدول (جداولی ) در دیتابیس داری که در آن کلید جدول کارمند در آنها به عنوان کلید خارجی درج شده است.در پروسیجر سمت sql server قبل از حذف رکورد کارمند باید رکورد های وابسته به رکورد مورد نظر خذف کنی سپس رکورد کارمند حذف شود.و یا راه دیگر آن در بخش پراپتی ارتباطات بین جداول هم می توانی شرایط خذف رکورد رو مشخص کنی که در صورت حذف رکوردی از جدول کارمند تمام رکوردهای مربوطه در جداول دیگر حذف شوند یا بجای کلید خارجی آن مقدار null قرار گیرد.

Cascade باید باشه یا SetNull؟
عکس ارتباطات رو هم میفرستم.اینجا جدول کارمند فقط با فاکتور ارتباط داره.همینو عوض کنم یا لازمه همه Relation ها رو تنظیم کنم؟ چون هنوز هم اون اشکال هنگام حذف وجود داره

145101

ژیار رحیمی
دوشنبه 11 اردیبهشت 1396, 12:52 عصر
Cascade باشه کفایت میکنه.آنچه من از تصویر بالا دریافت کردم از جدول کارمند به فاکتور یک ارتباط یک به چند وجود دارد و از جدول فاکتور به جدول شرکت فروش و بین جدول فاکتور و جدول سفارش یک ارتباط یک به یک وجود دارد .ارتباط بین جدول فروش و جدول شرکت فروش ،ارتباط بین جدول کارمند و جدول فاکتور و ارتباط بین جدول فاکتور و جدول سفارش حالت حذف رکورد رو روی Cascade تنظیم کن.
**ارتباط بین جدول فروش و سفارش را اصولا بصورت یک به چند طراحی میکنند تا ارتباط یک به یک**

masoud.a
سه شنبه 12 اردیبهشت 1396, 10:55 صبح
Cascade باشه کفایت میکنه.آنچه من از تصویر بالا دریافت کردم از جدول کارمند به فاکتور یک ارتباط یک به چند وجود دارد و از جدول فاکتور به جدول شرکت فروش و بین جدول فاکتور و جدول سفارش یک ارتباط یک به یک وجود دارد .ارتباط بین جدول فروش و جدول شرکت فروش ،ارتباط بین جدول کارمند و جدول فاکتور و ارتباط بین جدول فاکتور و جدول سفارش حالت حذف رکورد رو روی Cascade تنظیم کن.
**ارتباط بین جدول فروش و سفارش را اصولا بصورت یک به چند طراحی میکنند تا ارتباط یک به یک**

ارتباط ها را cascade کردم ولی تغییری ایجاد نشد و همون مشکل وجود داره

ژیار رحیمی
سه شنبه 12 اردیبهشت 1396, 11:32 صبح
مشکل ازجدول ثبت سفارش هست که دارای دو کلید اصلی میباشد .شما جدول ثبت سفارش رو با جدول فاکتور به صورت یک به چند پیاده سازی کن
tbl_sabtesefaesh
=================
Id:int کلید اصلی و AutoIncreament
ShomareFactor کلید خارجی
KodeKala کلید خارجی
Tedad
GheymateVahed
...
...