PDA

View Full Version : دخیره اطلاعات در جدول



omidparkour
چهارشنبه 26 آذر 1393, 01:13 صبح
سلام
من میخوام اطلاعات رو تو جدول ذخیره کنم اما ارور زیر رو میده
مشکل از چیه؟؟

http://0up.ir/up10/guest/error.jpg

کدهایی هم که نوشتم اینه :


SqlConnection objcon = new SqlConnection();
objcon.ConnectionString = "data source=localhost;initial catalog=Real estate;integrated security=true";
SqlCommand objcom = new SqlCommand();
objcom.Connection = objcon;
objcom.Parameters.AddWithValue("@name", name.Text);
objcom.Parameters.AddWithValue("@fname", fname.Text);
objcom.Parameters.AddWithValue("@tel", tel.Text);
objcom.Parameters.AddWithValue("@ostan", ostan.SelectedItem);
objcom.Parameters.AddWithValue("@shahr", shahr.SelectedItem);
objcom.Parameters.AddWithValue("@mantaghe", mantaghe.SelectedItem);
objcom.Parameters.AddWithValue("@street", street.SelectedItem);
objcom.Parameters.AddWithValue("@alley", alley.Text);
objcom.Parameters.AddWithValue("@pelak", pelak.Text);
objcom.Parameters.AddWithValue("@floor", floor.Text);
objcom.Parameters.AddWithValue("@metrazh", metrazh.Text);
objcom.Parameters.AddWithValue("@price", price.Text);
objcom.Parameters.AddWithValue("@sleep", sleep.Text);
objcom.Parameters.AddWithValue("@other", other.Text);
objcom.CommandText = "select * from tbl_home where alley=@alley and pelak=@pelak and floor=@floor";
SqlDataAdapter objda = new SqlDataAdapter(objcom);
DataTable objdt = new DataTable();
objda.Fill(objdt);
if (objdt.Rows.Count != 0)
{
MessageBox.Show("اطلاعات وارد شده تکراری است", "اخطار", MessageBoxButton.OK, MessageBoxImage.Error);
}
else
{
objcom.CommandText = "insert into tbl_home values(@name,@fname,@tel,@ostan,@shahr,@mantaghe,@ street,@alley,@pelak,@floor,@metrazh,@price,@sleep ,@other)";
objcon.Open();
objcom.ExecuteNonQuery();
MessageBox.Show("اطلاعات آشپز با موفقیت ثبت شد", "ثبت", MessageBoxButton.OK, MessageBoxImage.Information);
objcon.Close();
}

MRasoul
چهارشنبه 26 آذر 1393, 10:13 صبح
سلام
توی این خط
objcom.Parameters.AddWithValue("@ostan", ostan.SelectedItem);
کنترل ostan چیه؟comboboxهست؟اگر هست به جای ostan.SelectedItem اینجور بنویس ostan.Text
اگرم List هست اینجور بنویس ببین درس میشه
ostan.SelectedItems[0].ToString();

SabaSabouhi
چهارشنبه 26 آذر 1393, 12:26 عصر
سلام
توضیح دوستمون MRasoul درست هست، من یه کم فقط بازترش می‌کنم
SelectedItem یک object برمی‌گردونه که معادل چیزی هست که شما تو ItemsSource به combo یا Listbox خودتون دادین.
کار درست اینه که اول خالی نبودن SelectedItem رو کنترل کنید، و سپس اون رو به کلاس یا تایپ اصلی Cast کنید.


var ostanValue = (OstanClass) ostan.SelectedItem;
objcom.Parameters.AddWithValue("@ostan", ostanValue.Id);

به این صورت مشکل شما باید حل بشه.

صبا صبوحی

پانوشت: سعی کنید از pinglish استفاده نکنید. کدی که شما می‌نویسید وقتی با ارزش هست که یه برنامه‌نویس دیگه
بتونه اون رو بخونه، بفهمه و ادامه بده. یافتن معادل انگلیسی هر واژه با استفاده از مترجم‌هایی که موجود هست کار ساده‌ای هست
این جزئیات و ریزه‌کاری‌ها هست که بین دو برنامه‌نویس تفاوت ایجاد می‌کنه. این مثلا شما بجای استان می‌تونستید از
عبارت state استفاده کنید.

omidparkour
چهارشنبه 26 آذر 1393, 21:00 عصر
سلام
الان ارور زیر رو میده :
http://up.vbiran.ir/uploads/38811141886413117045_error.jpg

SabaSabouhi
پنج شنبه 27 آذر 1393, 12:34 عصر
سلام
دلیلش اینه که بجای Id، دارین متن رو به Sql می‌فرستین. پست قبلی من رو دوباره بخونید.

صباصبوحی

MRasoul
پنج شنبه 27 آذر 1393, 13:17 عصر
سلام
اگر بعد از انجام کاری که دوستمون گفت باز مشکل داشتین
شما از نوع nvarchar استفاده کرده اید، اگر پس از ارسال صحیح مقدار باز خطا داد باید قبل از ارسال مقدار حرف N را قرار بدهید

omidparkour
پنج شنبه 27 آذر 1393, 14:31 عصر
سلام
متاسفنه کدی که شما دادین رو هم میزنم ارور میده
الان کدهای من بصورت زیر هست


SqlConnection objcon = new SqlConnection();
objcon.ConnectionString = "data source=localhost;initial catalog=Real estate;integrated security=true";
SqlCommand objcom = new SqlCommand();
objcom.Connection = objcon;
objcom.Parameters.AddWithValue("@name", name.Text);
objcom.Parameters.AddWithValue("@fname", fname.Text);
objcom.Parameters.AddWithValue("@tel", tel.Text);
objcom.Parameters.AddWithValue("@ostan", ostan.Text);
objcom.Parameters.AddWithValue("@shahr", shahr.Text);
objcom.Parameters.AddWithValue("@mantaghe", mantaghe.Text);
objcom.Parameters.AddWithValue("@street", street.Text);
objcom.Parameters.AddWithValue("@alley", alley.Text);
objcom.Parameters.AddWithValue("@pelak", pelak.Text);
objcom.Parameters.AddWithValue("@floor", floor.Text);
objcom.Parameters.AddWithValue("@metrazh", metrazh.Text);
objcom.Parameters.AddWithValue("@price", price.Text);
objcom.Parameters.AddWithValue("@sleep", sleep.Text);
objcom.Parameters.AddWithValue("@other", other.Text);
objcom.CommandText = "select * from tbl_home where alley=@alley and pelak=@pelak and floor=@floor";
SqlDataAdapter objda = new SqlDataAdapter(objcom);
System.Data.DataTable objdt = new DataTable();
objda.Fill(objdt);
if (objdt.Rows.Count != 0)
{
MessageBox.Show("اطلاعات وارد شده تکراری است", "اخطار", MessageBoxButton.OK, MessageBoxImage.Error);
}
else
{
objcom.CommandText = "insert into tbl_home values(@name,@fname,@tel,@ostan,@shahr,@mantaghe,@ street,@alley,@pelak,@floor,@metrazh,@price,@sleep ,@other)";
objcon.Open();
objcom.ExecuteNonQuery();
MessageBox.Show("اطلاعات با موفقیت ثبت شد", "ثبت", MessageBoxButton.OK, MessageBoxImage.Information);
objcon.Close();
}

omidparkour
جمعه 28 آذر 1393, 12:08 عصر
لطفا اگر میدونید مشکل از چیه راهنمایی کنید

MRasoul
جمعه 28 آذر 1393, 21:39 عصر
این 'jnjn' که توی عکس بهش گیر داده برای کدوم مقادیرت وارد کردی و نوع این فیلد توی جدولت چیه؟

omidparkour
جمعه 28 آذر 1393, 23:39 عصر
int هست
الان داخل همون فیلد مقدار عددی هم وارد کردم اما باز همون ارور رو میده

MRasoul
شنبه 29 آذر 1393, 16:57 عصر
هنگام مقدار دهی اونو به int تبدیل کن، مثلا اگر برای sostan هست بنویس
objcom.Parameters.AddWithValue("@ostan", int.Parse(ostan.Text));
ببین جواب میده

omidparkour
یک شنبه 30 آذر 1393, 06:38 صبح
سلام دوستان
شرمنده نمیدونم چرا اینطور شده هر کاری میکنم ارور میده
اروری که الان میده
http://0up.ir/up10/guest/error.png

MRasoul
یک شنبه 30 آذر 1393, 09:19 صبح
خیلی ساده است
شما یا یه جایی از دستورات اشتباهه یا مقدار دهی اشتباه میکنی
اگر میتونستی برنامتو بذاری برات سریع رفعش میکردم
یا یکاری دیگه کن، کدهات که همیناس که گذاشتی درسته؟حالا یه عکس از جدولت که این اطلاعات داخلش میذاری بذار تا همه چی مشخص بشه و سریع جوابت بدن
اینجوری مثلا من یه چیزی میگم اما جدولت چیز دیگه ایه

aslan
یک شنبه 30 آذر 1393, 10:04 صبح
سلام
تصویری که گذاشتین کدهاتون را پوشونده و نمیشه دیدش ... ولی ظاهرا در کوئری نام جدولتون اشتباهه ... -tbl یا ..... _tbl ... ?????

omidparkour
یک شنبه 30 آذر 1393, 13:52 عصر
http://0up.ir/up10/guest/Screenshot-24-.png

MRasoul
یک شنبه 30 آذر 1393, 14:49 عصر
سلام
شما به جای اینها


objcom.CommandText = "select * from tbl_home where alley=@alley and pelak=@pelak and floor=@floor";
System.Data.DataTable objdt = new DataTable();



اینارو بذار ببین فعلا ج میده

objcom.CommandText = "select * from tbl_home where alley=N'x1' and pelak='x2' and floor='x3'";
System.Data.DataTable objdt = new DataTable("mytblable");



x1:نامی که جتما در alley وجود دارد
x2:پلاکی که حتما وجود دارد
x3:مقداری که در floor حتما وجود دارد
دقت داشته باش که مقادیر حتما بین 'و ' باشن