ورود

نسخه کامل مشاهده نسخه کامل : خطا در اجرای کد add در سی شارپ



نازنین زهرا
04-06-2015, 21:21
با سلام
من وقتی این قطعه کدم را اجرا می کنم
private DataTable getdatatabale()


{



DataTable dtinsertrows = new DataTable();
dtinsertrows.Columns.Add("nameproduct", Type.GetType("system.string"));
dtinsertrows.Columns.Add("Purchase price", Type.GetType("system.Double"));
dtinsertrows.Columns.Add("price1", Type.GetType("system.Double"));
dtinsertrows.Columns.Add("price2", Type.GetType("system.Double"));
//dtinsertrows.Columns.Add("Field type", Type.GetType("system.Double"));


DataRow dtinsertrow = dtinsertrows.NewRow();
dtinsertrow["nameproduct"] = txtname.Text.Trim();
dtinsertrows.Rows.Add(dtinsertrow);


dtinsertrow = dtinsertrows.NewRow();
dtinsertrow["Purchase price"] =Convert.ToDouble(txprice.Text.Trim());
dtinsertrows.Rows.Add(dtinsertrow);


dtinsertrow = dtinsertrows.NewRow();
dtinsertrow["price1"] = Convert.ToDouble(txprice1.Text.Trim());
dtinsertrow["price2"] = Convert.ToDouble(txprice2.Text.Trim());
dtinsertrows.Rows.Add(dtinsertrow);


return dtinsertrows;









}


private void btnadd_Click(object sender, EventArgs e)
{
DataTable dtinsertrows = getdatatabale();
using (SqlBulkCopy sbc = new SqlBulkCopy(connectionstring))
{
sbc.DestinationTableName = "product";
sbc.BatchSize = 2;
sbc.ColumnMappings.Add("nameproduct", "nameproduct");
sbc.ColumnMappings.Add("Purchase price", "Purchase price");

sbc.ColumnMappings.Add("price1", "price1");
sbc.ColumnMappings.Add("price2", "price2");


sbc.NotifyAfter = dtinsertrows.Rows.Count;
sbc.SqlRowsCopied+=new SqlRowsCopiedEventHandler(sbc_SqlRowsCopied);


sbc.WriteToServer(dtinsertrows);
sbc.Close();
}


}
void sbc_sqlrowscopied(object sender , SqlRowsCopiedEventArgs e)
{
MessageBox.Show("number of records affected :" + e.RowsCopied.ToString());


}
خطا ی زیر را می دهد لdataType' argument cannot be null.Parameter name: dataType
من متوجه این خطا نمی شوم وقتی برنامه اجرا می کنم و textbox پر می کنم و دکمه ثبت می زنم این خطا را می دهد
لطفا راهنمایی ام کنید:n28:

saeed_136915
04-06-2015, 22:55
سلام
به جای ("Type.GetType("system.string بنویسین (typeof(String

نازنین زهرا
05-06-2015, 08:34
ممنون از لطف تون.بعد از خط های بعدی خطا گرفت که من برای بقیه کدم این تغییر را اعمال کردم (typeof(double
ولی الان از این خط خطا می گیره( sbc.SqlRowsCopied+=new SqlRowsCopiedEventHandler(sbc_SqlRowsCopied
متن خطا هم هست
Delegate to an instance method cannot have null 'this'.
لطفا راهنمایی ام کنید من فقط امروز فرصت دارم :n35:

saeed_136915
05-06-2015, 14:32
خطایی که داره کوچیک و بزرگ بودن اسم متد رو دقت نکردین... sbc_SqlRowsCopied رو تمام کاراکترهارو کوچیک بنویسین