PDA

View Full Version : سوال: عجیب: Insert اجرا می شود اما فیلدی اضافه نمی شود



fidelio
شنبه 17 مهر 1389, 09:45 صبح
خیلی ساده. مدیر برنامه می خواد یک کاربر جدید ایجاد کنه. یک فرم هست و یک سری تکست باکس. جدول users غیر از یک اتو آی دی به عنوان کلید اصلی که غیر قابل تغییر هست، همه ی ستون هاش از نوع nvarchar هست.


string TemplateCmd = "INSERT INTO users (username,password,Firstname,LastName,Role,Email,M obile)";
VALUES('{0}','{1}','{2}','{3}','{4}','{5}','{6}')";
TemplateCmd = string.Format(TemplateCmd,this.usernametxtbx.Text, this.passwordtxtbx.Text, this.firstNametxtbx.Text,
this.lastNametxtbx.Text,this.txtbxRole.Text,this.e mailtxtbx.Text,
this.mobiletxtbx.Text);

SQLCmdBuilder AddCmd = new SQLCmdBuilder(templateCmd);
AddCmd.ExecuteCommand(TemplateCmd);



sqlcmdbuilder هم لایه ی دسترسی داده است. متد های استفاده شده ازش هم ایناس:


public SQLCmdBuilder(string CmdString)
{
_conn = new SqlConnection(DBConnString.CurrentConnection);
cmd = new SqlCommand(CmdString, _conn);
}

public int ExecuteCommand(string command)
{
SqlConnection SC = new SqlConnection(DBConnString.CurrentConnection.ToStr ing());
cmd.CommandText = command;
cmd.Connection = SC;
cmd.Connection.Open();
int result = cmd.ExecuteNonQuery;
cmd.Connection.Close();
return result;
}


حالا دستور اجرا می شه، اما می ری جدول users رو می بینی، هیچ سطری اضافه نشده.
کمککککککککککککککککککککککک کککککککککککککککککککککککک!: عصبانی++:

احمد رضا طونی
شنبه 17 مهر 1389, 10:26 صبح
سلام کدی که نوشتی مشکلی نداره اما بازم من نمی تونم در باره برنامه نویسی تو نظری بدم چون هرکسی برنامه نویسیش با شخص دیگه متفاوته اما اگه از تکس باکس استفاده می کنی بهتره یه نگاه به دیتا باندینگت بندازی ببینی درست تعریف شده بعدم سعی کن از جاگیرنده ها استفاده کنی ببین واب می ده یا نه اا م کد تورو روی سیستمم پیاده کردم رکورد رو اضافه می کنه اطلاعاتم وارد فلدام میشه این کدت مشکلی نداره اشکال از جایی دیگست چون من دارم با این قطعه کد شما اطلاعات ثبت می کنم:خجالت::چشمک:

صباح فتحی
شنبه 17 مهر 1389, 10:36 صبح
خیلی ساده. مدیر برنامه می خواد یک کاربر جدید ایجاد کنه. یک فرم هست و یک سری تکست باکس. جدول users غیر از یک اتو آی دی به عنوان کلید اصلی که غیر قابل تغییر هست، همه ی ستون هاش از نوع nvarchar هست.


string TemplateCmd = "INSERT INTO users (username,password,Firstname,LastName,Role,Email,M obile)";
VALUES('{0}','{1}','{2}','{3}','{4}','{5}','{6}')";
TemplateCmd = string.Format(TemplateCmd,this.usernametxtbx.Text, this.passwordtxtbx.Text, this.firstNametxtbx.Text,
this.lastNametxtbx.Text,this.txtbxRole.Text,this.e mailtxtbx.Text,
this.mobiletxtbx.Text);

SQLCmdBuilder AddCmd = new SQLCmdBuilder(templateCmd);
AddCmd.ExecuteCommand(TemplateCmd);

sqlcmdbuilder هم لایه ی دسترسی داده است. متد های استفاده شده ازش هم ایناس:


public SQLCmdBuilder(string CmdString)
{
_conn = new SqlConnection(DBConnString.CurrentConnection);
cmd = new SqlCommand(CmdString, _conn);
}

public int ExecuteCommand(string command)
{
SqlConnection SC = new SqlConnection(DBConnString.CurrentConnection.ToStr ing());
cmd.CommandText = command;
cmd.Connection = SC;
cmd.Connection.Open();
int result = cmd.ExecuteNonQuery;
cmd.Connection.Close();
return result;
}
حالا دستور اجرا می شه، اما می ری جدول users رو می بینی، هیچ سطری اضافه نشده.
کمککککککککککککککککککککککک کککککککککککککککککککککککک!: عصبانی++:

کدشما مشکلی نداره فقط بیا خاصیت Copy output device رو مثل شکل زیر عوض کن

reza4359
شنبه 17 مهر 1389, 12:48 عصر
شما باید به منوی project ویژوال استادیو برید و گزینه آخر که همون اسم پروژتونه رو انتخاب کنید و در قسمت build متن جلوی output path رو خالی کنید و برنامه رو save منید و یه بار build کنید و بعد هم اجرا کنید انشاءالله که درست میشه.
موفق باشید

صباح فتحی
شنبه 17 مهر 1389, 12:53 عصر
ناگفته نمونه اگه ستاپ درست شه دیگه این مشکیلو نداری

ramin_ramin
شنبه 17 مهر 1389, 12:55 عصر
با سلام
ممکنه در دیتابیست از تریگرهایی استفاده شده باشد که اجازه hnsert رو به این آسانی به شما ندهند

ramin_ramin
شنبه 17 مهر 1389, 12:56 عصر
با سلام
ممکنه در دیتابیست از تریگرهایی استفاده شده باشد که اجازه insert رو به این آسانی به شما ندهند

fidelio
شنبه 17 مهر 1389, 15:22 عصر
با سلام
ممکنه در دیتابیست از تریگرهایی استفاده شده باشد که اجازه insert رو به این آسانی به شما ندهند

از کجا می شه اینو فهمید؟

morteza271
شنبه 17 مهر 1389, 15:34 عصر
شاید مشکل از connectionString باشه منم قبلا یه بار این مشکلو داشتم و بعد کلی ور رفتن با connectionstring تونستم حلش کنم...
موفق باشید...

fidelio
شنبه 17 مهر 1389, 15:58 عصر
شما باید به منوی project ویژوال استادیو برید و گزینه آخر که همون اسم پروژتونه رو انتخاب کنید و در قسمت build متن جلوی output path رو خالی کنید و برنامه رو save منید و یه بار build کنید و بعد هم اجرا کنید انشاءالله که درست میشه.
موفق باشید

مرسی! اما می شه بیشتر توضیح بدی مشکل از کجا بود؟