使用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" />

插入将被忽略。

使用sqlCommand和ExecuteNonQuery插入失败

以下是我如何在我的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在本地运行时这样做。如果有人能解释一下,我将非常感激。