View Full Version : پیغام خطای بانک اطلاعاتی
yanni2
دوشنبه 12 مرداد 1394, 00:21 صبح
با سلام دوستان من از طریق کد زیر اطلاعاتی را در بانک درج میکنم اما همش این پیغام میاد خواهشن کمک کنید
133862
if (textBoxX2.Text == "" || textBoxX3.Text == "" || maskedTextBox1.Text == "" || textBoxX4.Text == "" || textBoxX8.Text == "" || textBoxX9.Text == "")
{
MessageBox.Show("اطلاعات خواسته شده را به درستی وارد کنید");
}
else
{
SqlCommand command = new SqlCommand("Insert into bongah5 (name=@name,shsenfi=@shsenfi,namelname=@namelname, mobile=@mobile,tel=@tel,postalcod=@postalcod)", conn);
command.Parameters.AddWithValue("@name", textBoxX2.Text);
command.Parameters.AddWithValue("@shsenfi", textBoxX3.Text);
command.Parameters.AddWithValue("@namelname", textBoxX4.Text);
command.Parameters.AddWithValue("@mobile", maskedTextBox1.Text);
command.Parameters.AddWithValue("@tel", textBoxX8.Text);
command.Parameters.AddWithValue("@postalcod", textBoxX9.Text);
try
{
if (conn.State != System.Data.ConnectionState.Open)
conn.Open();
int s = command.ExecuteNonQuery();
if (s > 0)
{
MessageBox.Show("عملیات ثبت با موفقیت انجام شد",
"پیغام موفقیت",
MessageBoxButtons.OK,
MessageBoxIcon.Information);
}
else
{
MessageBox.Show("مشکل در ارتباط");
}
}
catch (SqlException sqlex)
{
MessageBox.Show(sqlex.Message);
}
finally
{
if (conn.State != System.Data.ConnectionState.Closed)
conn.Close();
}
}
}
}
behzadkhan
دوشنبه 12 مرداد 1394, 00:45 صبح
با سلام
دوست عزیز
احتمالا به خاطر خط زیر هست:
SqlCommand command = new SqlCommand("Insert into bongah5 (name=@name,shsenfi=@shsenfi,namelname=@namelname, mobile=@mobile,tel=@tel,postalcod=@postalcod)", conn);
شما باید آنرا به شکل زیر تغییر دهید:
SqlCommand command = new SqlCommand(@"Insert into bongah5 (name, shsenfi, namelname, mobile, tel, postalcod)
VALUES (@name, @shsenfi, @namelname, @mobile, @tel, @postalcod)", conn);
با تشکر
yanni2
دوشنبه 12 مرداد 1394, 00:53 صبح
با سلام
دوست عزیز
احتمالا به خاطر خط زیر هست:
SqlCommand command = new SqlCommand("Insert into bongah5 (name=@name,shsenfi=@shsenfi,namelname=@namelname, mobile=@mobile,tel=@tel,postalcod=@postalcod)", conn);
شما باید آنرا به شکل زیر تغییر دهید:
SqlCommand command = new SqlCommand(@"Insert into bongah5 (name, shsenfi, namelname, mobile, tel, postalcod)
VALUES (@name, @shsenfi, @namelname, @mobile, @tel, @postalcod)", conn);
با تشکر
سلام اینکار را کردم این پیغام را می دهد
133864
ghasem110deh
دوشنبه 12 مرداد 1394, 01:40 صبح
سلام
خطای اول که علت رو دوست عزیزمون بهزادخان گفتن ! (اون کوئری شما واسه Update کردن اطلاعاته)
و این خطا ظاهرا بخاطر عدم تطبیق داده های ورودی با فیلدای دیتابیسه ... فیلدای جدول همشون از نوع رشته هستن (string)
.
.
.
و بهتره بجای چک کردن همه تکست باکس ها از errorProvider استفاده کنید !
yanni2
دوشنبه 12 مرداد 1394, 01:44 صبح
سلام
خطای اول که علت رو دوست عزیزمون بهزادخان گفتن ! (اون کوئری شما واسه Update کردن اطلاعاته)
و این خطا ظاهرا بخاطر عدم تطبیق داده های ورودی با فیلدای دیتابیسه ... فیلدای جدول همشون از نوع رشته هستن (string)
.
.
.
و بهتره بجای چک کردن همه تکست باکس ها از errorProvider استفاده کنید !
میشه بیشتر توضیح بدید ممنون
ghasem110deh
دوشنبه 12 مرداد 1394, 01:56 صبح
میشه بیشتر توضیح بدید ممنون
ببینید ، دقیق ترش اینه :
مثلا شما یه مقدار ورودی دارین : "123456789" که بصورت رشته در دیتابیس ذخیره میشه ، خالا اگه فیلد مربوطه varchar باشه که فقط 8 کاراکتر ذخیره میکنه این خطا رو میده !
یا مثلا عکس رو بصورت باینری پاس میدیم به دیتابیس که حجمش مثلا شده 1000 ولی توی جدول فیلدش رو varBinary 500 گذاشتیم ... باز همین خطا رو میده
در کل یعنی یکی از ورودی هاتون جای بیشتری از فضایی که بش تخصی دادین لازم داره !
yanni2
دوشنبه 12 مرداد 1394, 02:01 صبح
من اون مشکلم یجورایی حل شد
الان مشکلم اینه که کد زیر و نوشتم برای اینکه کاربر بتونه رمز ورود به برنامه را تغییر دهد ولی بازهم همان پیغام را می دهد
اینم کد
if (textBoxX5.Text == "" || textBoxX6.Text == "" || textBoxX7.Text == "")
{
MessageBox.Show("اطلاعات خواسته شده را به درستی وارد کنید");
}
else
{
try
{
if (conn.State != System.Data.ConnectionState.Open)
{
conn.Open();
DataSet ds = new DataSet();
SqlDataAdapter objDataAdapter = new SqlDataAdapter("Select * From login2 where username = '" + textBoxX5.Text + "' , pass= '" + textBoxX6.Text + "'", conn);
objDataAdapter.Fill(ds, "login2");
DataTable dt = new DataTable();
dt = ds.Tables["login2"];
// dt.DefaultView.RowFilter = "cod ='" + maskedTextBox1.Text + "'";
if (dt.Rows.Count != 0)
{
if (textBoxX6.Text == textBoxX7.Text)
{
SqlCommand cmd5 = new SqlCommand("UPDATE login SET pass= @pass", conn);
// cmd5.Parameters.AddWithValue("@username", textBoxX5.Text);
cmd5.Parameters.AddWithValue("@pass", textBoxX6.Text);
int i = cmd5.ExecuteNonQuery();
if (i > 0)
{
MessageBox.Show("عملیات با موفقیت انجام شد" + " " + "لطفا یکبار از سیستم خارج شده و دوباره وارد شوید", "پیغام موفقیت", MessageBoxButtons.OK,
MessageBoxIcon.Information);
textBoxX5.Clear();
textBoxX6.Clear();
textBoxX10.Clear();
textBoxX7.Clear();
this.Close();
}
}
else
{
MessageBox.Show("رمز ها جدید یکی نیستند");
textBoxX5.Clear();
textBoxX6.Clear();
textBoxX10.Clear();
textBoxX7.Clear();
this.Close();
}
}
else
{
MessageBox.Show("رمزعبور یا نام کاربری قبلی اشتباه است");
this.Close();
}
}
else
{
MessageBox.Show("اطلاعات ناقص است آن را به صورت کامل وارد کنید");
this.Close();
}
}
catch (SqlException sqlex)
{
MessageBox.Show(sqlex.Message);
}
finally
{
if (conn.State != System.Data.ConnectionState.Closed)
conn.Close();
}
}
}
ghasem110deh
دوشنبه 12 مرداد 1394, 02:12 صبح
SqlDataAdapter objDataAdapter = newSqlDataAdapter("Select * From login2 where username = '"+ textBoxX5.Text + "' , pass= '"+ textBoxX6.Text + "'", conn);
وقتی قرار واسه where دو تا یا بیشتر ، شرط بزارین باید از and استفاده کنید !
اینطوری :
SqlDataAdapter objDataAdapter = new SqlDataAdapter("Select * From login2 where username = '" + textBoxX5.Text + "' AND pass= '" + textBoxX6.Text + "'", conn);
yanni2
دوشنبه 12 مرداد 1394, 23:19 عصر
دوستان من با این کد دارم اطلاعات درج میکنم تو بانک ولی این پیعام را می دهد133892
if (textBoxX2.Text == "" || textBoxX3.Text == "" || textBoxX4.Text == "" || textBoxX8.Text == "" || textBoxX9.Text == "")
{
MessageBox.Show("اطلاعات خواسته شده را به درستی وارد کنید");
}
else
{
try
{
if (conn.State != System.Data.ConnectionState.Open)
{
conn.Open();
SqlCommand command = new SqlCommand(@"Insert Into bongah5 (name,shsenfi,namelname,mobile,tel,postalcod)
values('"+textBoxX2.Text+"','"+textBoxX3.Text+"','"+textBoxX4.Text+"','"+maskedTextBox1.Text+"','"+textBoxX8.Text+"','"+textBoxX9.Text+"')",conn);
// command.Parameters.AddWithValue("@name", textBoxX2.Text);
// command.Parameters.AddWithValue("@shsenfi", textBoxX3.Text);
// command.Parameters.AddWithValue("@namelname", textBoxX4.Text);
// command.Parameters.AddWithValue("@mobile", maskedTextBox1.Text);
// command.Parameters.AddWithValue("@tel", textBoxX8.Text);
// command.Parameters.AddWithValue("@postalcod", textBoxX9.Text);
int i = command.ExecuteNonQuery();
if (i > 0)
{
MessageBox.Show("عملیات با موفقیت انجام شد" + " " + "لطفا یکبار از سیستم خارج شده و دوباره وارد شوید", "پیغام موفقیت", MessageBoxButtons.OK,
MessageBoxIcon.Information);
textBoxX2.Enabled = false;
textBoxX3.Enabled = false;
textBoxX4.Enabled = false;
textBoxX8.Enabled = false;
textBoxX9.Enabled = false;
maskedTextBox1.Enabled = false;
}
}
else
{
MessageBox.Show("اطلاعات ناقص است آن را به صورت کامل وارد کنید");
this.Close();
}
}
catch (SqlException sqlex)
{
MessageBox.Show(sqlex.Message);
}
finally
{
if (conn.State != System.Data.ConnectionState.Closed)
conn.Close();
}
}
}
خواهشا یکی کمک کنه خسته شدم از این مسخره بازی اس کیو ال
behzadkhan
دوشنبه 12 مرداد 1394, 23:34 عصر
دوستان من با این کد دارم اطلاعات درج میکنم تو بانک ولی این پیعام را می دهد
خواهشا یکی کمک کنه خسته شدم از این مسخره بازی اس کیو ال
با سلام
دوست عزیز
لطفا یک عکس از حالت دیزاین جدول bongah5
و یا
کد ایجاد جدول ارسال کن
تا
متوجه بشویم که نوع ستون های جدول شما از چه نوعی است.
با تشکر
yanni2
دوشنبه 12 مرداد 1394, 23:40 عصر
با سلام
دوست عزیز
لطفا یک عکس از حالت دیزاین جدول bongah5
و یا
کد ایجاد جدول ارسال کن
تا
متوجه بشویم که نوع ستون های جدول شما از چه نوعی است.
با تشکر
قبلا با این کد یکی رکورد اضافه کردم
133893
behzadkhan
سه شنبه 13 مرداد 1394, 00:01 صبح
قبلا با این کد یکی رکورد اضافه کردم
133893
با سلام
دوست عزیز
من فکر می کنم که منظور این پیغام این هست که طول داده ارسالی به طول داده تعیین شده تطابق ندارد.
احتمالا شما بیش از مقدار تعیین شده داده وارد یک فیلد کرده اید.
مثلا برای مبایل بیش از 12 رقم.
و یا
اینکه نوع داده وارد شده با نوع داده تعریف شده تطابق ندارد.
مثلا شما حروف غیر اینگلیسی وارد کردید مثلا حروف فارسی .
اگر اشتباه نکرده باشم نوع داده varchar فقط با کاراکترهای Ansi کار می کند و با کاراکتر های unicode کار نمی کند.
به نظرم شما varchar را به nvarchar تغییر دید مشکل حل می شود.
با تشکر
yanni2
سه شنبه 13 مرداد 1394, 00:38 صبح
با سلام
دوست عزیز
من فکر می کنم که منظور این پیغام این هست که طول داده ارسالی به طول داده تعیین شده تطابق ندارد.
احتمالا شما بیش از مقدار تعیین شده داده وارد یک فیلد کرده اید.
مثلا برای مبایل بیش از 12 رقم.
و یا
اینکه نوع داده وارد شده با نوع داده تعریف شده تطابق ندارد.
مثلا شما حروف غیر اینگلیسی وارد کردید مثلا حروف فارسی .
اگر اشتباه نکرده باشم نوع داده varchar فقط با کاراکترهای Ansi کار می کند و با کاراکتر های unicode کار نمی کند.
به نظرم شما varchar را به nvarchar تغییر دید مشکل حل می شود.
با تشکر
مرسی دوست عزیز من چند وقت بود بعد آخرین پروژم با سی شارپ و بانک اطلاعاتی کار نکرده بودم حدود دو سال
اصلا حواسم به nvarchar بودن فیلد ها نبود خیلی ممنون
ghasem110deh
سه شنبه 13 مرداد 1394, 00:55 صبح
خدا رو شکر مشکل حل شد :)
ولی اگه از همون اول که مشکل پیش میاد جزئیات رو (خصوصا با عکس) بگین خیلی زودتر به جواب میرسین !
.
.
.
البته خودتون استادین ... جسارت نباشه !
yanni2
سه شنبه 13 مرداد 1394, 22:32 عصر
خدا رو شکر مشکل حل شد :)
ولی اگه از همون اول که مشکل پیش میاد جزئیات رو (خصوصا با عکس) بگین خیلی زودتر به جواب میرسین !
.
.
.
البته خودتون استادین ... جسارت نباشه !
سلام اون مشکل حل شد همرو nvarchar گذاشتم
الان میخوام آپدیت بکنم اطلاعات را این پیغاام را می دهد
133919
اینم کدم یکی بگه مشکل از کجاست
if (textBox1.Text == "" || textBox1.Text == "" || textBox3.Text == "" || textBox4.Text == "" || textBox5.Text == ""|| maskedTextBox1.Text=="")
{
MessageBox.Show("اطلاعات خواسته شده را به درستی وارد کنید");
}
else
{
try
{
if (conn.State != System.Data.ConnectionState.Open)
{
conn.Open();
SqlCommand command = new SqlCommand(@"UPDATE bongah5 SET(name,shsenfi,namelname,mobile,tel,postalcod)
values(@name,@shsenfi,@namelname,@mobile,@tel,@pos talcod)",conn);
command.Parameters.AddWithValue("@name", textBox1.Text);
command.Parameters.AddWithValue("@shsenfi", textBox2.Text);
command.Parameters.AddWithValue("@namelname", textBox3.Text);
command.Parameters.AddWithValue("@mobile", maskedTextBox1.Text);
command.Parameters.AddWithValue("@tel", textBox4.Text);
command.Parameters.AddWithValue("@postalcod", textBox5.Text);
int i = command.ExecuteNonQuery();
if (i > 0)
{
MessageBox.Show("عملیات با موفقیت انجام شد" + " " , "پیغام موفقیت", MessageBoxButtons.OK,
MessageBoxIcon.Information);
textBox1.Text = "";
textBox2.Text = "";
textBox3.Text = "";
textBox4.Text = "";
textBox5.Text = "";
maskedTextBox1.Text = "";
}
}
else
{
MessageBox.Show("اطلاعات ناقص است آن را به صورت کامل وارد کنید");
this.Close();
}
}
catch (SqlException sqlex)
{
MessageBox.Show(sqlex.Message);
}
finally
{
if (conn.State != System.Data.ConnectionState.Closed)
conn.Close();
}
}
}
}
}
yanni2
سه شنبه 13 مرداد 1394, 22:38 عصر
مشکلم با این کد حل شد ممنون
if (textBox1.Text == "" || textBox1.Text == "" || textBox3.Text == "" || textBox4.Text == "" || textBox5.Text == ""|| maskedTextBox1.Text=="")
{
MessageBox.Show("اطلاعات خواسته شده را به درستی وارد کنید");
}
else
{
try
{
if (conn.State != System.Data.ConnectionState.Open)
{
conn.Open();
SqlCommand command = new SqlCommand(@"UPDATE bongah5 SET name='"+textBox1.Text+"',shsenfi='"+textBox2.Text+"',namelname='"+textBox3.Text+"',mobile='"+maskedTextBox1.Text+"',tel='"+textBox4.Text+"',postalcod='"+textBox5.Text+"'", conn);
// values(@name,@shsenfi,@namelname,@mobile,@tel,@pos talcod)",conn);
// command.Parameters.AddWithValue("@name", textBox1.Text);
// command.Parameters.AddWithValue("@shsenfi", textBox2.Text);
// command.Parameters.AddWithValue("@namelname", textBox3.Text);
// command.Parameters.AddWithValue("@mobile", maskedTextBox1.Text);
// command.Parameters.AddWithValue("@tel", textBox4.Text);
// command.Parameters.AddWithValue("@postalcod", textBox5.Text);
int i = command.ExecuteNonQuery();
if (i > 0)
{
MessageBox.Show("عملیات با موفقیت انجام شد" + " " , "پیغام موفقیت", MessageBoxButtons.OK,
MessageBoxIcon.Information);
textBox1.Text = "";
textBox2.Text = "";
textBox3.Text = "";
textBox4.Text = "";
textBox5.Text = "";
maskedTextBox1.Text = "";
}
}
else
{
MessageBox.Show("اطلاعات ناقص است آن را به صورت کامل وارد کنید");
this.Close();
}
}
catch (SqlException sqlex)
{
MessageBox.Show(sqlex.Message);
}
finally
{
if (conn.State != System.Data.ConnectionState.Closed)
conn.Close();
}
}
}
}
}
ببخشید
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.