使用sqlCommand和ExecuteNonQuery插入失败
本文关键字:插入 失败 ExecuteNonQuery sqlCommand 使用 | 更新日期: 2023-09-27 18:13:01
当我在使用集成安全性的本地mssql服务器数据库上运行以下代码时,它工作正常。当我在远程服务器上运行它时,我能看到的唯一区别是它使用SQLServer身份验证,插入语句不执行,我没有得到任何错误。当我使用listView在服务器上使用SQLDataSource插入或更新时,更新工作完美,并且我使用相同的连接字符串。我只是有问题使用SQLCommand与ExecuteNonQuery。下面是代码:
using (SqlConnection thisConnection = new SqlConnection(ConfigurationManager.ConnectionStrings["LocalSqlServer"].ConnectionString))
{
thisConnection.Open();
SqlCommand cmd = new SqlCommand("insert into dbo.msgs (msg1, msg2) values ('abc', 'abc')", thisConnection);
int results = cmd.ExecuteNonQuery();
}
我的本地sqlServer连接字符串在web。Config is
<add name="LocalSqlServer" connectionString="Data Source=MYLAPTOP'sqlexpress;Initial Catalog=DBName;Integrated Security=True" providerName="System.Data.SqlClient" />
我在GoDaddy上的连接字符串是:
<add name="LocalSqlServer" connectionString="Data Source=xxx.xxx.xx.xx;Initial Catalog=DBName;Integrated Security=False;User Id=username; Password=password" providerName="System.Data.SqlClient" />
插入将被忽略。
以下是我如何在我的web配置中拥有连接字符串,似乎唯一的区别是声明集成安全性,复制我的连接字符串并更改您需要的内容,看看它是否有效
<add name="name" connectionString="Data Source=192.168.0.1;Initial Catalog=Database;User Id=dbUser;Password=dbPassword" providerName="System.Data.SqlClient" />
所以我认为这只是一个错误的类型在你的连接字符串,有一个尝试,让我知道
我刚刚注意到你正在使用sql express在这种情况下,你需要使用以下
<add name="name" connectionString="Data Source=192.168.0.1'sqlexpress;Initial Catalog=Database;User Id=dbUser;Password=dbPassword" providerName="System.Data.SqlClient" />
作为连接正在寻找非sqlexpress数据库服务器,但因为它是sqlexpress推到IP的末端,所有应该是好的
我解决了问题。我不知道为什么这解决了它,但它确实。而不是
using (SqlConnection thisConnection = new SqlConnection(ConfigurationManager.ConnectionStrings["LocalSqlServer"].ConnectionString))
我写
string strConnString = System.Configuration.ConfigurationManager.ConnectionStrings["LocalSqlServer"].ToString();
using (SqlConnection thisConnection = new SqlConnection(strConnString ))
再次-我只需要在Godaddy服务器上对SQLServer工作时这样做,而不是在我使用SQLExpress在本地运行时这样做。如果有人能解释一下,我将非常感激。