PDA

View Full Version : سوال: خواندن اطلاعات از DataGridView و نوشتن آن‌ها در پایگاه داده | LINQ



hadimtn
پنج شنبه 12 شهریور 1394, 04:00 صبح
سلام.
از کد زیر برای خواندن اطلاعات از DataGridView و نوشتن آن‌ها در پایگاه داده استفاده می‌کنم:



LINQDataContext db = new LINQDataContext();
try
{
for (int i = 0; i < dataGridView1.RowCount; i++)
for (int j = 0; j < dataGridView1.ColumnCount; j++)
{
SaledTable ST = new SaledTable()
{
Object = dataGridView1.Rows[i].Cells[j].Value.ToString(),
Brand = dataGridView1.Rows[i].Cells[j].Value.ToString(),
Number = dataGridView1.Rows[i].Cells[j].Value.ToString(),
InPrice = Convert.ToDecimal(dataGridView1.Rows[i].Cells[j].Value),
OutPrice = Convert.ToDecimal(dataGridView1.Rows[i].Cells[j].Value),
Profit = Convert.ToDecimal(dataGridView1.Rows[i].Cells[j].Value),
Amount = Convert.ToDecimal(dataGridView1.Rows[i].Cells[j].Value),
RegDate = DateTime.Now
};
db.SaledTables.InsertOnSubmit(ST);
db.SubmitChanges();
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
ولی با خطا مواجه میشم! لطفاً راهنمایی کنید! قسمت ورودی ها رو ایراد میگیره!

134877

البته این عکس رو وقتی Catch نذاشته بودم گرفتم؛ ولی به هر حال Error همینه!
نوع داده رو هم صحیح وارد کردم!!!!

Mahmoud.Afrad
پنج شنبه 12 شهریور 1394, 18:56 عصر
ستونهایی که داده عددی دارند اطلاعات به چه صورت در دیتاگرید وارد میشن؟ عکسی از دیتاگرید همراه با اطلاعات بزار.


و البته منطق اشتباهی رو پیش گرفتی! با این کد مقدار هر سلول چندبار و به صورت تکراری برای پراپرتی های مختلف ثبت خواهد شد. در اینجا نیازی به حلقه داخلی نداری. باید از اندیس هر ستون به جای j استفاده کنی.

group45
پنج شنبه 12 شهریور 1394, 19:09 عصر
شما برنامتو خط به خط چک کن ببین با کدوم خط خطا ایجاد میشه بعد مقدار اون خط رو تو یه استرینگ بریز و ببین چی میریزه
حتی ممکنه مقدار برگشتی نداشته باشی و این خطا تولید بشه

hadimtn
پنج شنبه 12 شهریور 1394, 20:53 عصر
ستونهایی که داده عددی دارند اطلاعات به چه صورت در دیتاگرید وارد میشن؟ عکسی از دیتاگرید همراه با اطلاعات بزار.
در این تاپیک (http://barnamenevis.org/showthread.php?505721-%D9%86%D8%AD%D9%88%D9%87-%D8%AE%D8%B1%D9%88%D8%AC-%DA%A9%D8%A7%D9%84%D8%A7-%D8%A7%D8%B2-%D8%A7%D9%86%D8%A8%D8%A7%D8%B1-%D9%88-%D8%AB%D8%A8%D8%AA-%D8%AF%D8%B1-%D9%84%DB%8C%D8%B3%D8%AA-%D9%81%D8%B1%D9%88%D8%AE%D8%AA%D9%87-%D8%B4%D8%AF%D9%87-%D9%87%D8%A7-LINQ)
البته مشکل حل شد! سوال مرتبط بود در همین تاپیک مطرح می‌کنم!


و البته منطق اشتباهی رو پیش گرفتی! با این کد مقدار هر سلول چندبار و به صورت تکراری برای پراپرتی های مختلف ثبت خواهد شد. در اینجا نیازی به حلقه داخلی نداری. باید از اندیس هر ستون به جای j استفاده کنی.
درسته، اصلاً حواسم نبود، حلقه‌ی داخلی باعث Error می‌شد! :تشویق: