PDA

View Full Version : مشکل در ذخیره اطلاعات



alizanganeh
جمعه 27 اردیبهشت 1392, 15:20 عصر
سلام

من با کد زیر میخوام اطلاعات رو در sql express ذخیره کنم . هیچ اروری نداره ها ولی ذخیره نمیکنه

SqlConnection con = new SqlConnection();
con.ConnectionString = @"Data Source=.\SQLEXPRESS; AttachDbFilename=
|DataDirectory|\Library.mdf;
Integrated Security=True; User Instance=True";
con.Open();

SqlCommand cmd = new SqlCommand();
cmd.Connection = con;
cmd.CommandText = "INSERT INTO Numbers (Name,Tel)"
+ "VALUES ('"+ txtName.Text +"' , '"+ txtTel.Text +"')";

cmd.ExecuteNonQuery();
MessageBox.Show("Added Successfully!");
con.Close();


ممنون

amir200h
جمعه 27 اردیبهشت 1392, 15:33 عصر
نوع فیلدهات چیه؟

مهدی هادیان2
جمعه 27 اردیبهشت 1392, 17:59 عصر
بسم الله الرحمن الرحیم
با سلام
به جای cmd.CommandText = "INSERT INTO Numbers (Name,Tel)"
+ "VALUES ('"+ txtName.Text +"' , '"+ txtTel.Text +"')";
این رو cmd.CommandText = "INSERT INTO Numbers (Name,Tel)"
+ " VALUES ('"+ txtName.Text +"' , '"+ txtTel.Text +"')";
بذارید.
قبل از Value فاصله انداختم.
در موارد مشابه برنامه رو دیباگ کنید و کوئری که در حال اجرا بدست آمده رو در SQL اجرا کنید؛ تا ببینید مسئله از کجاست.
موفق باشید.

alizanganeh
جمعه 27 اردیبهشت 1392, 23:54 عصر
بسم الله الرحمن الرحیم
با سلام
به جای cmd.CommandText = "INSERT INTO Numbers (Name,Tel)"
+ "VALUES ('"+ txtName.Text +"' , '"+ txtTel.Text +"')";
این رو cmd.CommandText = "INSERT INTO Numbers (Name,Tel)"
+ " VALUES ('"+ txtName.Text +"' , '"+ txtTel.Text +"')";
بذارید.
قبل از Value فاصله انداختم.
در موارد مشابه برنامه رو دیباگ کنید و کوئری که در حال اجرا بدست آمده رو در SQL اجرا کنید؛ تا ببینید مسئله از کجاست.
موفق باشید.


ظاهرا این فاصله تاثیری نمیذاره که تاثیری هم نذاشت
موندم اگر مشکلی هست چرا هیچی نمیگه ؟!
نکته خاصی وجود داره در ساخت فرم و ساخت بانک ؟
فیلم های بانکم هردو nvarchar هستند . int رو هم تست کردم نشد !

alizanganeh
شنبه 28 اردیبهشت 1392, 01:14 صبح
خوب میرم محتویات بانک رو نگاه میکنم میبینم هیچ رکوردی اضافه نشده دیگه . از بخش server explorer در پنل سمت چپ

mousa1992
شنبه 28 اردیبهشت 1392, 02:00 صبح
مشکل از رشته اتصالتونه - در واقع مشکلی نداره ولی چون این ادرسی که دادید |DataDirectory| وارد پوشه debug میشه به فایل بانکی که کپی میشه از فایل اصلی متصل میشه عملیات مورد نظرو انجام میده و شما از قسمت server explorer میخواین چک کنین ببینم رکورداتون ثبت شده یا نه ! و از قسمت server explorer شما دسترسی به فایل های اصلی دیتابیس که توی پوشه اصلی برنامه وجود داره پیدا میکنید(کنار سورستون ) و میبینید هیچی نیس :بامزه: خب دیگه اونقد داستان بافتم که خودمم گیج شدم
زمانی که برنامتو مینویسی و تست میکنی ادرس بانک اصلیتو بده ینی به جا data directory مثلا بنویس C:\Users\ASUS\Documents\Visual Studio 2008\Projects\WindowsFormsApplication1\WindowsForm sApplication1 موقعی که خواستی setup بسازی و کارت تموم شد همون data directory رو بذار

موفق باشید

alizanganeh
شنبه 28 اردیبهشت 1392, 13:25 عصر
پس ینی الان ذخیره میشه ولی نمیتونم از اونجا ببینم ؟! خوب چیکار کنم که بشه دید ؟
یا مثلا چطوری میتونم توی datagridview ببینمش؟
کد زیر رو دارم ولی کار نمیکنه
شاید چیزی کم داره یا اشتباهه

SqlDataAdapter da = new SqlDataAdapter();
da.SelectCommand = cmd;
DataTable dt = new DataTable();
da.Fill(dt);
DataBank.DataSource = dt;


برای تعریف مقدار cmd از کد زیر استفاده کردم ولی نشد . ظاهرا این تعریف فقط وقتی بدرد میخوره که بخوایم ذخیره کنیم.
SqlCommand cmd = new SqlCommand();

ممنون

mousa1992
شنبه 28 اردیبهشت 1392, 14:11 عصر
شاید چیزی کم داره یا اشتباهه

1
2
3
4
5
SqlDataAdapter da = new SqlDataAdapter();
da.SelectCommand = cmd;
DataTable dt = new DataTable();
da.Fill(dt);
DataBank.DataSource = dt;






کانکشنت رو باز کردی ؟
رشته اتصالتو به نحوی که گفتم تغییر بده اگه نتیجه نگرفتی برنامتو اپلود کن

alizanganeh
یک شنبه 29 اردیبهشت 1392, 23:50 عصر
کانکشنت رو باز کردی ؟
رشته اتصالتو به نحوی که گفتم تغییر بده اگه نتیجه نگرفتی برنامتو اپلود کن

برات PM کردم