【发布时间】:2016-10-29 00:37:27
【问题描述】:
我正在尝试将新记录添加到trans_daily 表中,但是,单击按钮时执行的下面的代码 sn-p 不起作用。
问题代码
private void button1_Click(object sender, EventArgs e)
{
try
{
SqlConnection connection = new SqlConnection(conString);
connection.Open();
string strcom = "INSERT INTO trans_daily (retail_id, cust_name, quantity, " +
"price, date, visibility, remarks_id) VALUES (@RetailID, @CustomerName, " +
"@Quantity, @Price, @Date, @Visibility, @RemarksID)";
SqlCommand cmd = new SqlCommand(strcom, connection);
cmd.Parameters.AddWithValue("@RetailID", ddRetailType.SelectedValue);
cmd.Parameters.AddWithValue("@CustomerName", tbCustomer.Text);
cmd.Parameters.AddWithValue("@Quantity", float.Parse(tbQuantity.Text));
cmd.Parameters.AddWithValue("@Price", float.Parse(tbPrice.Text));
cmd.Parameters.AddWithValue("@Date", DateTime.Now);
cmd.Parameters.AddWithValue("@Visibility", 1);
cmd.Parameters.AddWithValue("@RemarksID", 1);
cmd.ExecuteNonQuery();
}
catch (Exception err)
{
Console.WriteLine(err.Message);
}
}
以下是数据类型:
- retail_id (int)
- cust_name (varchar50)
- 数量(浮点数)
- 价格(浮动)
- 日期(日期时间)
- 可见性 (int)
- remarks_id (int)
还值得指出的是,没有异常被抛出。
可能出了什么问题?
工作代码
在一个单独的函数中,我能够在表单加载时从retail 表中提取数据,并将提取的数据放置到下拉列表中。
private void formAddTransaction_Load(object sender, EventArgs e)
{
try
{
objConnect = new DatabaseConnection();
conString = Properties.Settings.Default.MVGasConnectionString;
objConnect.Sql = "SELECT * FROM retail";
objConnect.connection_string = conString;
ds = objConnect.GetConnection;
MaxRows = ds.Tables[0].Rows.Count;
FillRetailTypes(conString);
}
catch (Exception err)
{
MessageBox.Show(err.Message);
}
}
public void FillRetailTypes(string constring)
{
ddRetailType.DataSource = ds.Tables[0];
ddRetailType.ValueMember = "id";
ddRetailType.DisplayMember = "type";
}
【问题讨论】:
-
这取决于异常消息的内容。让我们深入研究您的异常并尝试找出可能出了什么问题。如果您不能将其添加到您的问题中,我们会为您提供帮助。
-
除了您的错误,您是否关闭了连接?
-
嗨托尔加。单击按钮后,没有显示异常消息。我什至不知道函数内部的代码是否被执行。
-
ExecuteNonQuery 返回什么? 0 还是 1?
-
在您的点击事件处理程序的第一行放置一个断点并测试是否执行了此行