使用sqlCommand和ExecuteNonQuery插入到失败

时间:2014-07-14 11:09:34

标签: c# asp.net sql-server

当我在使用集成安全性的本地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" />

插入只是被忽略了。

2 个答案:

答案 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在本地运行它时却不行。如果有人能解释,我会非常感激。