مشاهده ثبت اطلاعات در دیتاگرید در runtime با کمک storeproceture
باسلام خدمت دوستان عزیزم.
من در فرم ثبت یه دیتاگرید دارم که می خوام همزمان با ثبت،اطلاعات ثبت شده را در دیتاگرید ببینم.این برنامه با کمک storeproceture کار می کنه که من دیتابیس و پروسیچرشو در همون محیط سی شارپ ایجاد کردم.کدم خطا داره.اولا که اصلا عمل ثبت را انجام نمی ده و مطمئنم که در دستور cmd.parameter.add("@Name",sqldbtype.nvarchar,50).v alue=dgv.currentrow.cell["Name"].tostring();
و مشابه اینها که در زیر نوشتم مشکل داره و دوما خطای زیر را هم می ده:
روی کد بالا زرد رنگ پیغام : "object reference not set to an instance of an object" مشاهده می شه.اینم کدهام:
private void btnsave_Click(object sender, EventArgs e)
{
SqlConnection cn = new SqlConnection();
SqlCommand cmd = new SqlCommand();
cn.ConnectionString = "server=HAMED-PC;Database=Farafan;trusted_connection=true;";
cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandText = "dbo.Psave";
cmd.Parameters.Add("@Name", SqlDbType.NVarChar,50).Value = dgv.CurrentRow.Cells["Name"].ToString();
cmd.Parameters.Add("@FName", SqlDbType.NVarChar, 50).Value = dgv.CurrentRow.Cells["FName"].ToString();
cmd.Parameters.Add("@FatherName", SqlDbType.NVarChar, 50).Value = dgv.CurrentRow.Cells["FatherName"].ToString();
cmd.Parameters.Add("@DateBirth", SqlDbType.DateTime2, 7).Value = dgv.CurrentRow.Cells["DateBirth"].ToString();
cmd.Parameters.Add("@DateEmployee", SqlDbType.DateTime2, 7).Value = dgv.CurrentRow.Cells["DateEmployee"].ToString();
cmd.Parameters.Add("@Phone", SqlDbType.VarChar, 50).Value = dgv.CurrentRow.Cells["Phone"].ToString();
cmd.Parameters.Add("@Cellphone", SqlDbType.NVarChar, 50).Value = dgv.CurrentRow.Cells["Cellphone"].ToString();
cmd.Parameters.Add("@Address", SqlDbType.NVarChar, 150).Value = dgv.CurrentRow.Cells["Address"].ToString();
da.Fill(dt);
dgv.DataSource = dt;
MessageBox.Show("Information was Saved Succsessfully", "Insert Message", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
لطفا راهنماییم کنید.
نقل قول: مشاهده ثبت اطلاعات در دیتاگرید در runtime با کمک storeproceture
سلام
currentRow فقط در صورتی nulll نیست که حتما یه سطر از گرید انتخاب شده باشه .
یه احتمال دیگه هم هست که شاید گرید شما ستونی بهنام name نداشته باشه .
موفق باشید ./
نقل قول: مشاهده ثبت اطلاعات در دیتاگرید در runtime با کمک storeproceture
نقل قول:
نوشته شده توسط
M.YasPro
سلام
currentRow فقط در صورتی nulll نیست که حتما یه سطر از گرید انتخاب شده باشه .
یه احتمال دیگه هم هست که شاید گرید شما ستونی بهنام name نداشته باشه .
موفق باشید ./
پس می شه بهم بگید باید کدهای مربوط به پروسیچر و دیتاگریدمو چطور بنویسم؟
نقل قول: مشاهده ثبت اطلاعات در دیتاگرید در runtime با کمک storeproceture
سلام
دوست عزيز ، كدهاتونو بين تك code (از نوار ابزار بالا ) قرار بديد تا بهتر قابل خوندن باشه
cmd.Parameters.Add("@Name", SqlDbType.NVarChar,50).Value = dgv.CurrentRow.Cells["Name"].ToString();
از اين شيوه نوشتن چيزي نميدونم ولي از اين روش استفاده كنيد ببينيد چي ميشه :
cmd.Parameters.AddWithValue("Age", txtAgeSearch.Text);
موفق باشيد
شما استوردپروسيجر را چطور استفاده كرديد ؟
من كه در كدتون نام پروسيجر را نديد مثلا
string sql = "sp_Persons_SelectRowByAge";
SqlCommand cmd = new SqlCommand(sql, connection);
نقل قول: مشاهده ثبت اطلاعات در دیتاگرید در runtime با کمک storeproceture
نقل قول:
من در فرم ثبت یه دیتاگرید دارم که می خوام همزمان با ثبت،اطلاعات ثبت شده را در دیتاگرید ببینم
شما می خواید اطلاعاتی رو که توی گرید وارد شده در دیتابیس ثبت کنید ؟ یا بعد از ثبت ، رکورد ثبت شده رو به گرید اضافه کنید ؟
1 ضمیمه
نقل قول: مشاهده ثبت اطلاعات در دیتاگرید در runtime با کمک storeproceture
نام پروسیچرم "dbo.Psave" در خط پنجم برنامه هست.مشکل باید بین دستورات خط 6 تا 13 باشه.اگه بازم نیاز به توضیح است بفرمایید تا بیشتر توضیح بدم.
در آخر برنامه ام را ضمیمه کردم.
SqlConnection cn = new SqlConnection();
SqlCommand cmd = new SqlCommand();
cn.ConnectionString = "server=HAMED-PC;Database=Farafan;trusted_connection=true;";
cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandText = "dbo.Psave";
cmd.Parameters.Add("@Name", SqlDbType.NVarChar,50).Value = dgv.CurrentRow.Cells["Name"].ToString();
cmd.Parameters.Add("@FName", SqlDbType.NVarChar, 50).Value = dgv.CurrentRow.Cells["FName"].ToString();
cmd.Parameters.Add("@FatherName", SqlDbType.NVarChar, 50).Value = dgv.CurrentRow.Cells["FatherName"].ToString();
cmd.Parameters.Add("@DateBirth", SqlDbType.DateTime2, 7).Value = dgv.CurrentRow.Cells["DateBirth"].ToString();
cmd.Parameters.Add("@DateEmployee", SqlDbType.DateTime2, 7).Value = dgv.CurrentRow.Cells["DateEmployee"].ToString();
cmd.Parameters.Add("@Phone", SqlDbType.VarChar, 50).Value = dgv.CurrentRow.Cells["Phone"].ToString();
cmd.Parameters.Add("@Cellphone", SqlDbType.NVarChar, 50).Value = dgv.CurrentRow.Cells["Cellphone"].ToString();
cmd.Parameters.Add("@Address", SqlDbType.NVarChar, 150).Value = dgv.CurrentRow.Cells["Address"].ToString();
da.Fill(dt);
dgv.DataSource = dt;
MessageBox.Show("Information was Saved Succsessfully", "Insert Message", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
نقل قول: مشاهده ثبت اطلاعات در دیتاگرید در runtime با کمک storeproceture
سوال من رو جواب ندادید .
کدتون رو دیدم
شما باید اطللاعات رو از textBox ها بگیرید نه از گرید.
مثلا به اینصورت :
cmd.Parameters.Add("@Name", SqlDbType.NVarChar,50).Value = txtName.Text;
نمونه های زیادی روی سایت هست .
موفق باشید ./
1 ضمیمه
نقل قول: مشاهده ثبت اطلاعات در دیتاگرید در runtime با کمک storeproceture
به اين نگاه كنيد جواب ميده