PDA

View Full Version : سوال: خطا در هنگام ویرایش جدول



SardareEshgh
شنبه 07 اردیبهشت 1398, 12:09 عصر
با سلام و احترام
وقتی جدول رو با دستور زیر ویرایش میکنم بدون مشکل اجرا میشه :

con = new OleDbConnection();
con.ConnectionString = ConnectionString;
com = new OleDbCommand();
com.Connection = con;

query = "Update Tblpersonal set codgroup=false ,teamcode=Null WHERE BakhshName=@BakhshName";
com.Parameters.AddWithValue("@BakhshName", bakhshname);
com.CommandText = query;
oda.SelectCommand = com;
con.Open();
com.ExecuteNonQuery();
con.Close();
con.Dispose();
اما وقتی بجای Flsae مقدار True قرار میدم و بجای Null هم مقدار تکست مثلا B قرار میدم خطا میده :

query = "Update Tblpersonal set codgroup=True ,teamcode=B WHERE BakhshName=@BakhshName";
خطا :
150096

ظاهرا فقط زمانی که teamcod از مقدار Null به مقدار تکست تغییر داده میشه خطا میده و در بقیه موارد مشکلی نداره. چرا؟

Mahmoud.Afrad
شنبه 07 اردیبهشت 1398, 13:00 عصر
در sql مقادیر رشته ای باید بین کوتتیشن ' ' قرار بگیرند.

اگر اون مقادیر بولین و مخصوصا رشته ها را هم با پارامتر ارسال کنید بهتر هست.

SardareEshgh
شنبه 07 اردیبهشت 1398, 13:42 عصر
ممنون درست شد.
اما یه مشکل دیگه ایجاد شده و اینکه شرط رو اجرا نمیکنه. متغیر bakhshname مقدار هم داره ولی در اجرا به همه رکوردهای جدول اعمال میکنه. اگر شرط برقرار نباشه که قاعدا نباید هیچ رکوردی رو تغییر بده و اگر هم شرط درسته پس چرا به همه رکوردها اعمال میکنه.؟

Shadow_net
شنبه 07 اردیبهشت 1398, 16:40 عصر
اول اینکه اینجا نمیبینم متغیر bakhshname رو مقدار دهی کرده باشید
AddWithValue هم قبل query مقدار دهی کنید
برای تست کوئری هم اول توی Sql Server کوئری رو تست کنید تا از صحتش مطمئن بشید

SardareEshgh
شنبه 07 اردیبهشت 1398, 19:22 عصر
والا واقعا گیج شدم ظاهرا همه چیز درسته ولی درست عمل نمیکنه و کل جدول رو آپدیت میکنه!! :

اکسس 2007 و VS2008 .


private void AddCode_Click(object sender, EventArgs e)
{

string bakhshname = "انبار";

con = new OleDbConnection();
con.ConnectionString = ConnectionString;
com = new OleDbCommand();
com.Connection = con;

com.Parameters.AddWithValue("@BakhshName", bakhshname);

string query = "Update Tblpersonal set codgroup=true ,teamcode='k' WHERE BakhshName=@BakhshName";

com.CommandText = query;

con.Open();
com.ExecuteNonQuery();
con.Close();
con.Dispose();


}

SardareEshgh
شنبه 07 اردیبهشت 1398, 20:17 عصر
مشکل از اسم ستون بود .صدبار از copy-paste توبه کردم ولی بازم انجام میدم. دستوری کوئری رو از یه جای دیگه کپی کردم و توی اون دستور اسم ستون BakhshName بود. در صورتیکه در جدول فعلی اسم ستون فرق داره.
بابت وقتی که دوستان گذاشتند ممنون