PDA

View Full Version : تغییر مقدار bit به null از داخل برنامه



code_project
یک شنبه 26 دی 1395, 16:29 عصر
سلام دوستان
میخواستم بدونم آیا راهی هست که مقدار یک فیلد دیتابیس را که داخلش false ذخیره شده با یک دستور update از داخل برنامه به null تبدیل کرد یا نه؟ ممنون میشم کمکم کنید. خیلی درگیرم

reza_ali202000
یک شنبه 26 دی 1395, 17:41 عصر
سلام دوست عزیز
برابر با null قرار بدید.
Update... Fldbit=null

code_project
شنبه 02 بهمن 1395, 16:43 عصر
دوست عزیز جواب نمیده. فیلد boolean که مقدار false داخلش ذخیره شده را نمیشه با برابر قراردادن با مقدار null در یک دستور update به null تغییرش داد. امتحان کنید. توراخدا کمکککککککککککککککککک

nunegandom
شنبه 02 بهمن 1395, 17:08 عصر
سلام
خوب توی sql اجازه بده که نال هم بتونه باشه :چشمک:

code_project
یک شنبه 03 بهمن 1395, 07:31 صبح
تیک allow null واسه این فیلد خورده دوست من. اگه نخورده بود که توی اولین insert مقدار null نمیگرفت. مشکل من اینه که این فیلد بعد از اولین insert مقدار null توش میشینه. بعد یه عملیات روش انجام میشه و مقدارش به false تغییر میکنه. حالا من میخوام با یه دستور update این مقدار false را دوباره به null تبدیل کنم. توراخدا کمککککککککککککککک

محمد آشتیانی
یک شنبه 03 بهمن 1395, 09:07 صبح
سلام
دوست گرامی ، یک بار درست تست کنید ، یا لااقل کوئری که دارید باهاش مقدار فیلد رو آپدیت می کنید اینجا بذارید
کافیه فیلدتون داخل دیتابیس مقدار NULL قبول کنه ، بقیش میشه یه کوئری آپدیت ساده شبیه این


UPDATE TestTable SET Deleted = NULL WHERE ID = 2


موفق باشید.

code_project
یک شنبه 03 بهمن 1395, 12:13 عصر
جناب مهندس آشتیانی عزیز من دقیقا کوئری که دارم همینه. اولا که از داخل برنامه نمیشه مقدار یک فیلد را مستقیم برابر null قرار داد و باید نوشت deleted=DbNull.Value ولی اینم جواب نمیده. نمیشه مقدار false یک فیلد از نوع bit را از داخل برنامه با یک کامند به null برگردوند. توراخدا خودتون یه تست بزنید.

محمد آشتیانی
یک شنبه 03 بهمن 1395, 13:57 عصر
سلام مجدد
ببینید شما موقعی میتونی از DBNULL.Value استفاده کنی ، که اون رو بصورت پارامتر به کوئری بفرستی ، ضمنا من کد قبلی رو هم تست کردم و کار میکنه ، در هر صورت این قطعه کد هم با پارامتر اینجا قرار میدم و البته تست شده.


const string commandText = "UPDATE TestTable SET Deleted = @dbNull WHERE ID = @ID";
const string connectionString = @"Your Connection String";

var sqlConnection = new SqlConnection(connectionString);
var sqlCommand = new SqlCommand {Connection = sqlConnection, CommandText = commandText};


sqlCommand.Parameters.AddWithValue("@ID", 3);
sqlCommand.Parameters.AddWithValue("@dbNull", DBNull.Value);


sqlConnection.Open();
sqlCommand.ExecuteNonQuery();
sqlConnection.Close();

code_project
دوشنبه 04 بهمن 1395, 08:17 صبح
سلام جناب مهندس آشتیانی. ممنون بابت لطفتون. جناب مهندس روش خود من جواب نداد اما به روش پارامتریک و با کدی که شما فرستادید جواب گرفتم. فقط میخواستم بدونم اشکال کار من کجا بود و چرا فقط این update با روش پارامتریک جواب میده.؟؟؟ خیلی برام جالبه
البته اینم بگم من توی vb.net کد میزدما!!! به نظرتون ربطی داره؟؟؟