PDA

View Full Version : سوال: مشکل با ویرایش بانک اطلاعاتی sql server



iradata
سه شنبه 27 دی 1390, 15:04 عصر
سلام

من برای ویرایش اطلاعات یک سری مشترک از این کد استفاده می کنم اما هیچ اتفاقی رخ نمیده !!!!


SqlConnection conn = new SqlConnection();
conn.ConnectionString = @"Data Source=MOSTAFA-PC;Initial Catalog=AjansDB;Integrated Security=True";
conn.Open();
SqlCommand cmd = new SqlCommand();
cmd.Connection = conn;
string sql = "update Moshtarekin set name1 = '" + txtName.Text + "'," + "cat='" + txtCat.Text + "',tel1='" + txtTel1.Text + "',tel2='" + txtTel2.Text + "',tel3='" + txtTel3.Text + "',mobile='" + txtMobile.Text + "',address1='" + txtAddress1.Text + "',address2='" + txtAddress2.Text + "'where id = '" + frm1.id + "'";
cmd.CommandText = sql;
cmd.ExecuteNonQuery();

h-rafiee
سه شنبه 27 دی 1390, 17:44 عصر
name1 = '" + txtName.Text + "'," + "cat='"
دستور + رو وردارد چرا باید دو ستون با هم جمع شن؟!!!!
چنین کاری اصولا و اساسا اشتاباه

iradata
سه شنبه 27 دی 1390, 19:21 عصر
name1 = '" + txtName.Text + "'," + "cat='"
دستور + رو وردارد چرا باید دو ستون با هم جمع شن؟!!!!
چنین کاری اصولا و اساسا اشتاباه

متوجه نمیشم یعنی نباید از + استفاده کرد ؟؟؟؟

cherchil_hra
سه شنبه 27 دی 1390, 20:03 عصر
دستور + رو وردارد چرا باید دو ستون با هم جمع شن؟!!!!
چنین کاری اصولا و اساسا اشتاباه
ستون ها رو جمع نمی کنه! رشته ها رو به هم می چسبونه

شکل دستوراتت درسته!
اگه error میده قبل where یه فاصله خالی بذار
اگه از string.format استفاده کنی خواناتره
چک کن ببین آیدی که داری پاس میدی توی جدولت وجود داره

موفق باشی

shadi khanum
سه شنبه 27 دی 1390, 21:17 عصر
شما روی این دستورcmd.ExecuteNonQuery(); یه breaak point بذار و قبل از اینکه از برنامه اجراش کنی cmd.commandtext رو از watch بگیر و ببر تو Sql اجرا کن ببین اونجا چی میشه ؟ اصلا کار میکنه یا نه؟ چجون اگه error داشته باشه اونجا بیشتر توضیح میده

h-rafiee
سه شنبه 27 دی 1390, 23:08 عصر
متوجه نمیشم یعنی نباید از + استفاده کرد ؟؟؟؟

نگاه قبل از دستور cat یک + وجود داره که وجود اون در چنین نوشتاری صحیح نیست و حاوی ارور میشه بقیه خط دستورت درسته

shadi khanum
سه شنبه 27 دی 1390, 23:13 عصر
دوست عزیز اون + دو تا رشته رو با هم concat میکنه و Error نداره! به نظر شما از نظر VS، این دو تا فرقی دارن؟

string s;
s = "a" + "b";

و

string s;
s = "ab";

h-rafiee
چهارشنبه 28 دی 1390, 21:27 عصر
دوست عزیز اون + دو تا رشته رو با هم concat میکنه و Error نداره! به نظر شما از نظر VS، این دو تا فرقی دارن؟

string s;
s = "a" + "b";

و

string s;
s = "ab";


دوست عزیز این موردی که شما می گویید کاملا درست است اما ما درباره ی بانک داریم صحبت می کنیم و بانک ستون هایی دارد. در اینجا ستون Cat اگه اشتباه نکنم با Name در Name می نویسه که چنین خطی اررور میده به همین سادگی

shadi khanum
چهارشنبه 28 دی 1390, 23:38 عصر
دوست عزیز این موردی که شما می گویید کاملا درست است اما ما درباره ی بانک داریم صحبت می کنیم و بانک ستون هایی دارد. در اینجا ستون Cat اگه اشتباه نکنم با Name در Name می نویسه که چنین خطی اررور میده به همین سادگی
ببین این ربطی به بانک نداره! صرفا داره از ترکیب یه سری String یه String دیگه میسازه، چه ربطی به بانک داره؟! ببین شما واسه اینکه مطمئن شی یه پروژه new کن و همین دو خط رو توش بنویس. ببین خروجیت چی میشه!؟
string m = "test";
string sql = "update Moshtarekin set name1 = '" + m +
"'," + "cat='" + m + "',tel1='" + m +
"',tel2='" + m + "',tel3='" + m +
"',mobile='" + m + "',address1='" +
m + "',address2='" + m +
"'where id = '" + m + "'";

دیدی فرقی نداره؟!

shadi khanum
چهارشنبه 28 دی 1390, 23:40 عصر
احتمالا مشکل این دوستمون اینه که کلا اون شرط where که نوشته مشکل داره، یعنی رکوردی با اون مشخصات اصلا نیست که بخواد update کنه.

h-rafiee
چهارشنبه 28 دی 1390, 23:54 عصر
بگذریم ایشاالله خوده دوستمون به جوابشون رسیده باشن و اینجا جای بحث نیست که ما کل کلی داشته باشیم یا نه.
در کل فرمودم.
در این دستوری که شما فرمودید
یعنی محتویات ستون Name شامل:
محتویات تکست باکس Cat= محتویات تکست باکس دگر
(درحالی که ویرگول قبل از + دستور را ناقض می کنه)
اما بنده منظورم اینه که محتویات ستون Name:
محتویات تکست باکس
و محتویات ستون Cat شامل:
محتویات تکس باکس دگر
(لازمه اش برداشتن "+" می باشد)
حال از آنجا که دستورات SQL دستورات رشته ای هستند اینکه Cat یک ستون باشد تا رشته بسته به جدول فرد دارد و گفته ی هردو درست است.
اصلا نه مال شما درست تر بر روی چشم