mehran63
سه شنبه 26 بهمن 1389, 18:02 عصر
با سلام
در کد زیر مخواستم داده ها را در بانک اضافه کنم ولی خطا میگیره که پیغام خطا را در زیر گذاشتم
private void FillDataSetAndView()
{
objDataSet = new DataSet();
objDataAdapter.Fill(objDataSet, "tbuy");
objDataView = new DataView(objDataSet.Tables["tbuy"]);
objCurrencyManager = (CurrencyManager)
(this.BindingContext[objDataView]);
}// end method FillDataSetAndView
private void BindFields()
{
txtCode.DataBindings.Clear();
txtCount.DataBindings.Clear();
txtCountry.DataBindings.Clear();
txtDate.DataBindings.Clear();
txtDescription.DataBindings.Clear();
txtManufacturer.DataBindings.Clear();
txtModel.DataBindings.Clear();
txtName.DataBindings.Clear();
txtPrice.DataBindings.Clear();
txtSN.DataBindings.Clear();
txtCode.DataBindings.Add("text", objDataView, "code");
txtCount.DataBindings.Add("text", objDataView, "count");
txtCountry.DataBindings.Add("text", objDataView, "country");
txtDate.DataBindings.Add("text", objDataView, "date");
txtDescription.DataBindings.Add("text", objDataView, "description");
txtManufacturer.DataBindings.Add("text", objDataView, "manufacturer");
txtModel.DataBindings.Add("text", objDataView, "model");
txtName.DataBindings.Add("text", objDataView, "name");
txtPrice.DataBindings.Add("text", objDataView, "price");
txtSN.DataBindings.Add("text", objDataView, "sn");
toolStripStatusLabel1.Text = "Redy";
}// end method BindFields
private void ShowPosition()
{
try
{
txtPrice.Text = decimal.Parse(txtPrice.Text).ToString("##0.00");
}// end try
catch(System.Exception e)
{
txtPrice.Text = "0";
txtPrice.Text = decimal.Parse(txtPrice.Text).ToString("##0.00");
}// end catch
private void btnAdd_Click(object sender, EventArgs e)
{
int intPosition;
intPosition = objCurrencyManager.Position;
objCommand=new SqlCommand();
objCommand.Connection = objConnection;
objCommand.CommandText = "insert into tbuy" +
"valuse(@code,@name,@model,@manufacturer,@sn,@count ry," +
"@price,@count,@date,@description)";
objCommand.Parameters.AddWithValue("code", txtCode).DbType = DbType.Int32;
objCommand.Parameters.AddWithValue("name", txtName);
objCommand.Parameters.AddWithValue("model", txtModel);
objCommand.Parameters.AddWithValue("manufacturer", txtManufacturer);
objCommand.Parameters.AddWithValue("sn", txtSN).DbType = DbType.Int32;
objCommand.Parameters.AddWithValue("country", txtCountry);
objCommand.Parameters.AddWithValue("price", txtPrice).DbType = DbType.Int32;
objCommand.Parameters.AddWithValue("count", txtCount).DbType = DbType.Int32;
objCommand.Parameters.AddWithValue("date", txtDate);
objCommand.Parameters.AddWithValue("description", txtDescription);
objConnection.Open();
try
{
objCommand.ExecuteNonQuery();
}// end try
catch(SqlException sqlExceptionErr)
{
MessageBox.Show(sqlExceptionErr.Message);
}// end catch
objConnection.Close();
FillDataSetAndView();
BindFields();
objCurrencyManager.Position = intPosition;
ShowPosition();
toolStripStatusLabel1.Text = "Record Added";
}// end method btnAdd_Click
ولی در خط objCommand.ExecuteNonQuery() پیغام خطای
Failed to convert parameter value from a TextBox to a Int32. را میدهد و اگرDbType = DbType.Int32را از جلوی داده هایی که به صورت عدد وارد میشوند بردارم پیغام خطای زیر را میدهد
No mapping exists from object type System.Windows.Forms.TextBox to a known managed provider native type
در کد زیر مخواستم داده ها را در بانک اضافه کنم ولی خطا میگیره که پیغام خطا را در زیر گذاشتم
private void FillDataSetAndView()
{
objDataSet = new DataSet();
objDataAdapter.Fill(objDataSet, "tbuy");
objDataView = new DataView(objDataSet.Tables["tbuy"]);
objCurrencyManager = (CurrencyManager)
(this.BindingContext[objDataView]);
}// end method FillDataSetAndView
private void BindFields()
{
txtCode.DataBindings.Clear();
txtCount.DataBindings.Clear();
txtCountry.DataBindings.Clear();
txtDate.DataBindings.Clear();
txtDescription.DataBindings.Clear();
txtManufacturer.DataBindings.Clear();
txtModel.DataBindings.Clear();
txtName.DataBindings.Clear();
txtPrice.DataBindings.Clear();
txtSN.DataBindings.Clear();
txtCode.DataBindings.Add("text", objDataView, "code");
txtCount.DataBindings.Add("text", objDataView, "count");
txtCountry.DataBindings.Add("text", objDataView, "country");
txtDate.DataBindings.Add("text", objDataView, "date");
txtDescription.DataBindings.Add("text", objDataView, "description");
txtManufacturer.DataBindings.Add("text", objDataView, "manufacturer");
txtModel.DataBindings.Add("text", objDataView, "model");
txtName.DataBindings.Add("text", objDataView, "name");
txtPrice.DataBindings.Add("text", objDataView, "price");
txtSN.DataBindings.Add("text", objDataView, "sn");
toolStripStatusLabel1.Text = "Redy";
}// end method BindFields
private void ShowPosition()
{
try
{
txtPrice.Text = decimal.Parse(txtPrice.Text).ToString("##0.00");
}// end try
catch(System.Exception e)
{
txtPrice.Text = "0";
txtPrice.Text = decimal.Parse(txtPrice.Text).ToString("##0.00");
}// end catch
private void btnAdd_Click(object sender, EventArgs e)
{
int intPosition;
intPosition = objCurrencyManager.Position;
objCommand=new SqlCommand();
objCommand.Connection = objConnection;
objCommand.CommandText = "insert into tbuy" +
"valuse(@code,@name,@model,@manufacturer,@sn,@count ry," +
"@price,@count,@date,@description)";
objCommand.Parameters.AddWithValue("code", txtCode).DbType = DbType.Int32;
objCommand.Parameters.AddWithValue("name", txtName);
objCommand.Parameters.AddWithValue("model", txtModel);
objCommand.Parameters.AddWithValue("manufacturer", txtManufacturer);
objCommand.Parameters.AddWithValue("sn", txtSN).DbType = DbType.Int32;
objCommand.Parameters.AddWithValue("country", txtCountry);
objCommand.Parameters.AddWithValue("price", txtPrice).DbType = DbType.Int32;
objCommand.Parameters.AddWithValue("count", txtCount).DbType = DbType.Int32;
objCommand.Parameters.AddWithValue("date", txtDate);
objCommand.Parameters.AddWithValue("description", txtDescription);
objConnection.Open();
try
{
objCommand.ExecuteNonQuery();
}// end try
catch(SqlException sqlExceptionErr)
{
MessageBox.Show(sqlExceptionErr.Message);
}// end catch
objConnection.Close();
FillDataSetAndView();
BindFields();
objCurrencyManager.Position = intPosition;
ShowPosition();
toolStripStatusLabel1.Text = "Record Added";
}// end method btnAdd_Click
ولی در خط objCommand.ExecuteNonQuery() پیغام خطای
Failed to convert parameter value from a TextBox to a Int32. را میدهد و اگرDbType = DbType.Int32را از جلوی داده هایی که به صورت عدد وارد میشوند بردارم پیغام خطای زیر را میدهد
No mapping exists from object type System.Windows.Forms.TextBox to a known managed provider native type