C# 将整数值从C插入SQL Server数据库#
我试图在SQL Server数据库中插入一个整数值,如下所示,当我运行该程序时,没有任何错误,但该表不会使用值进行更新。我在互联网上搜索过,我也在做同样的事情。有人能帮我找到我做错的地方吗 注意:我已经将“connectionString”定义为表单类上的字符串C# 将整数值从C插入SQL Server数据库#,c#,sql-server,C#,Sql Server,我试图在SQL Server数据库中插入一个整数值,如下所示,当我运行该程序时,没有任何错误,但该表不会使用值进行更新。我在互联网上搜索过,我也在做同样的事情。有人能帮我找到我做错的地方吗 注意:我已经将“connectionString”定义为表单类上的字符串 private void btnUpdate_Click(object sender, EventArgs e) { int totalincome=600; int totaldeductions =
private void btnUpdate_Click(object sender, EventArgs e)
{
int totalincome=600;
int totaldeductions = 10;
connectionString = ConfigurationManager.ConnectionStrings["BudgetApp.Properties.Settings.MainDataBaseConnectionString"].ConnectionString;
con = new SqlConnection(connectionString);
con.Open();
cmd = new SqlCommand("INSERT INTO Totals(TotalIncome, TotalDeductions) VALUES (@TotalIncome, @TotalDeductions)", con);
cmd.Parameters.AddWithValue("@TotalIncome", totalincome);
cmd.Parameters.AddWithValue("@TotalDeductions", totaldeductions);
cmd.ExecuteNonQuery();
MessageBox.Show("Done !!");
}
代码似乎是正确的,也许您检查了错误的DB?。我会为异常添加一个Try/catch。并记住在执行查询后关闭连接。关于整个AttachDbFileName=方法是有缺陷的-最多!在Visual Studio中运行应用程序时,它将围绕
.mdf
文件进行复制(从app\u Data
目录复制到输出目录-通常是\bin\debug
-应用程序运行的地方)和最有可能是,您的INSERT
工作正常-但您最后看到的是错误的.mdf文件
如果您想继续使用这种方法,请尝试在myConnection.Close()
调用上放置一个断点,然后使用SQL Server Mgmt Studio Express检查.mdf
文件,我几乎可以肯定您的数据在那里
我认为真正的解决办法是
maindabase
)Data Source=.\\SQLEXPRESS;Database=MainDataBase;Integrated Security=True
其他一切都和以前一样有关更多背景信息,请参阅Aaron Bertrand的优秀博客文章。检查数据库列数据类型,使用try-catch 并尝试替换
cmd.Parameters.AddWithValue(“@TotalIncome”,TotalIncome)
tocmd.Parameters.Add(“@Number”,SqlDbType.Int)。Value=totalincome代码>
try
{
int totalincome=600;
int totaldeductions = 10;
connectionString = ConfigurationManager.ConnectionStrings["BudgetApp.Properties.Settings.MainDataBaseConnectionString"].ConnectionString;
con = new SqlConnection(connectionString);
con.Open();
cmd = new SqlCommand(@"INSERT INTO Totals(TotalIncome, TotalDeductions) VALUES (@TotalIncome, @TotalDeductions)", con);
cmd.Parameters.Add("@Number", SqlDbType.Int).Value = totalincome;
cmd.Parameters.Add("@Number", SqlDbType.Int).Value = totaldeductions;
//cmd.Parameters.AddWithValue("@TotalIncome", totalincome);
//cmd.Parameters.AddWithValue("@TotalDeductions", totaldeductions);
cmd.ExecuteNonQuery();
}
catch(Exception ex)
{
MessageBox.Show(ex.ToString());
}
您是否能够看到消息Done代码>在执行结束时?是,完成!!消息出现几乎不可能有TransactionScope
在起作用?cmd.ExecuteNonQuery()代码>返回受影响的行数。如果它大于零,它就起作用了。如果数据库没有显示,则表明您在错误的数据库中查找。您的连接字符串是什么样子的?不过,如果Sql Server Express只想为传统桌面应用程序提供本地数据存储,则这有点过分了。