【发布时间】:2020-12-23 10:12:30
【问题描述】:
我已经开始从事现金券项目。当我单击提交按钮时,会出现一个弹出框并显示“无效对象凭证表”。 我该怎么办??
private void bunifuFlatButton1_Click(object sender, EventArgs e)
{
string con = ConfigurationManager.ConnectionStrings["mydb"].ConnectionString;
SqlConnection sqlcn = new SqlConnection(con);
sqlcn.Open();
try
{
SqlCommand cmd = new SqlCommand("INSERT INTO voucher_table(customerID, planName, days, planAmount, validFrom, validTo, amountInWords, date, rupees) values(@customerID, @planName, @days, @planAmount, @validFrom, @validTo, @amountInWords, @date, @rupees)", sqlcn);
cmd.CommandType = CommandType.Text;
cmd.Parameters.AddWithValue("@customerID", customerID.Text);
cmd.Parameters.AddWithValue("@planName", planName.Text);
cmd.Parameters.AddWithValue("@days", days.Text);
cmd.Parameters.AddWithValue("@planAmount", planAmount.Text);
cmd.Parameters.AddWithValue("@validFrom", validFrom.Text);
cmd.Parameters.AddWithValue("@validTo", validTo.Text);
cmd.Parameters.AddWithValue("@amountInWords", amountInWordsTextBox1.Text + amountInWordsTextBox2.Text);
cmd.Parameters.AddWithValue("@date", date.Text);
cmd.Parameters.AddWithValue("@rupees", rupees.Text);
int i = cmd.ExecuteNonQuery();
if (i > 0)
{
MessageBox.Show("Voucher Created Successfully");
SqlCommand cmd1 = new SqlCommand("select max(primaryNo) from voucher_table", sqlcn);
SqlDataReader dr1 = cmd1.ExecuteReader();
if (dr1.Read())
{
MessageBox.Show("Your Voucher No is '" + dr1.GetInt32(0) + "'Your Voucher is Created Successfully!");
Voucher_Successful success = new Voucher_Successful();
success.ShowDialog();
}
this.Close();
}
else
{
MessageBox.Show("An Error Occured... Voucher Not Created");
}
sqlcn.Close();
}
catch (SqlException ex)
{
MessageBox.Show(ex.Message);
}
编辑:Image 01
编辑:找到的答案: 我添加了初始目录:我的现金券;在 app.config 中,问题解决了。
【问题讨论】:
-
Dan Guzman 说:"AddWithValue is Evil" - 请阅读这篇文章并停止使用它!
-
您是否在连接字符串中选择了正确的数据库?
-
该错误表示该数据库中不存在该表。您可能连接到错误的数据库,或者尚未创建表
-
您应该始终在
using块中创建连接,否则连接会保持打开状态,直到 GC 收集它,可能几个小时后。每次遇到异常时,您都会泄漏一个打开的连接。使用finally也不够,因为在某些极端情况下可以跳过finally而using则不行 -
不,它没有。你的电脑一开始就有问题。你需要修复它。数十万台服务器作为默认实例运行,如果出现问题,很多 大公司会注意到。 MS 会破产
标签: c# sql sql-server ado.net