Mehrdad_Parsi
چهارشنبه 27 فروردین 1393, 09:11 صبح
با سلام
من یه فرم دارم که داخلش 3 تا تکست باکس هست . دو تا تاریخ و داخل سومی یه کد (کد سازنده ) وارد میشه
تاریخ ها Varchar و کد Numerc هست
یه گرید ویو وجود داره که براساس این پارامترها اطلاعاتش بروز میشه . زمانیکه همه اطلاعات رو وارد کنم تاریخ و کد مربوطه ، گرید ویو بروز میشه ولی زمانیکه فقط تاریخ ها رو وارد می کنم و تکس باکس کد سازنده رو خالی میزارم با خطای زیر روبرو میشم :Error converting data type nvarchar to numeric
اینم کد برنامه :
SqlConnection conn = new SqlConnection("Data Source=" + strserver + ";Initial Catalog=co;User id=p;Password=4");
SqlDataAdapter adapter = new SqlDataAdapter(); ;
DataSet ds = new DataSet();
conn.Open();
// 1. declare command object with parameter
System.Data.SqlClient.SqlCommand cmd = new System.Data.SqlClient.SqlCommand();
cmd.CommandText = "SELECT * FROM dbo.PEYMANKAR_QTY_DTE_T WHERE ( IGSD_SUP_DTE > = @IGSD_SUP_DTE OR @IGSD_SUP_DTE = '') AND ( IGSD_SUP_DTE < = @IGSD_SUP_DTE1 OR @IGSD_SUP_DTE1 = '') AND ( IGSD_RSUP_SUP1 = @IGSD_RSUP_SUP1 OR @IGSD_RSUP_SUP1 = '') ";
cmd.CommandType = CommandType.Text;
cmd.Connection = conn;
// 2. define parameters used in command object
SqlParameter param = new SqlParameter();
SqlParameter param1 = new SqlParameter();
SqlParameter param2 = new SqlParameter();
// decimal IGSD_RSUP_SUP1 = decimal.Parse(TXT_RSUP.Text);
param.ParameterName = "@IGSD_SUP_DTE";
param1.ParameterName = "@IGSD_SUP_DTE1";
param2.ParameterName = "@IGSD_RSUP_SUP1";
param.Value = TXT_FROM.Text;
param1.Value = TXT_TO.Text;
param2.Value = TXT_RSUP.Text;
// 3. add new parameter to command object
cmd.Parameters.Add(param);
cmd.Parameters.Add(param1);
cmd.Parameters.Add(param2);
//4.set adapter
adapter.SelectCommand = cmd;
adapter.Fill(ds, "dbo.PEYMANKAR_QTY_DTE_T");
DGV_PEYMANKAR.DataSource = ds.Tables["dbo.PEYMANKAR_QTY_DTE_T"];
conn.Close();
118037
ممنون میشم راهنمایی بفرمایید
من یه فرم دارم که داخلش 3 تا تکست باکس هست . دو تا تاریخ و داخل سومی یه کد (کد سازنده ) وارد میشه
تاریخ ها Varchar و کد Numerc هست
یه گرید ویو وجود داره که براساس این پارامترها اطلاعاتش بروز میشه . زمانیکه همه اطلاعات رو وارد کنم تاریخ و کد مربوطه ، گرید ویو بروز میشه ولی زمانیکه فقط تاریخ ها رو وارد می کنم و تکس باکس کد سازنده رو خالی میزارم با خطای زیر روبرو میشم :Error converting data type nvarchar to numeric
اینم کد برنامه :
SqlConnection conn = new SqlConnection("Data Source=" + strserver + ";Initial Catalog=co;User id=p;Password=4");
SqlDataAdapter adapter = new SqlDataAdapter(); ;
DataSet ds = new DataSet();
conn.Open();
// 1. declare command object with parameter
System.Data.SqlClient.SqlCommand cmd = new System.Data.SqlClient.SqlCommand();
cmd.CommandText = "SELECT * FROM dbo.PEYMANKAR_QTY_DTE_T WHERE ( IGSD_SUP_DTE > = @IGSD_SUP_DTE OR @IGSD_SUP_DTE = '') AND ( IGSD_SUP_DTE < = @IGSD_SUP_DTE1 OR @IGSD_SUP_DTE1 = '') AND ( IGSD_RSUP_SUP1 = @IGSD_RSUP_SUP1 OR @IGSD_RSUP_SUP1 = '') ";
cmd.CommandType = CommandType.Text;
cmd.Connection = conn;
// 2. define parameters used in command object
SqlParameter param = new SqlParameter();
SqlParameter param1 = new SqlParameter();
SqlParameter param2 = new SqlParameter();
// decimal IGSD_RSUP_SUP1 = decimal.Parse(TXT_RSUP.Text);
param.ParameterName = "@IGSD_SUP_DTE";
param1.ParameterName = "@IGSD_SUP_DTE1";
param2.ParameterName = "@IGSD_RSUP_SUP1";
param.Value = TXT_FROM.Text;
param1.Value = TXT_TO.Text;
param2.Value = TXT_RSUP.Text;
// 3. add new parameter to command object
cmd.Parameters.Add(param);
cmd.Parameters.Add(param1);
cmd.Parameters.Add(param2);
//4.set adapter
adapter.SelectCommand = cmd;
adapter.Fill(ds, "dbo.PEYMANKAR_QTY_DTE_T");
DGV_PEYMANKAR.DataSource = ds.Tables["dbo.PEYMANKAR_QTY_DTE_T"];
conn.Close();
118037
ممنون میشم راهنمایی بفرمایید