نازنین زهرا
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:
من وقتی این قطعه کدم را اجرا می کنم
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: