当我在使用集成安全性的本地mssql服务器数据库上运行以下代码时,它可以正常工作。当我在远程服务器上运行它时,我可以看到的唯一区别是它使用SQLServer身份验证,插入语句不会执行,我没有错误。当我使用listView在服务器上使用SQLDataSource插入或更新时,更新工作正常,我使用相同的连接字符串。我只是在使用带有ExecuteNonQuery的SQLCommand时遇到了问题。这是代码:
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();
}
web.config中的My Local sqlServer连接字符串是
<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" />
插入只是被忽略了。
答案 0 :(得分:0)
以下是我在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的结尾并且一切都应该没问题
答案 1 :(得分:0)
我解决了这个问题。我不知道为什么要修复它,但确实如此。 而不是
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在本地运行它时却不行。如果有人能解释,我会非常感激。