C# 使用sqlCommand和ExecuteOnQuery插入失败

C# 使用sqlCommand和ExecuteOnQuery插入失败,c#,asp.net,sql-server,C#,Asp.net,Sql Server,当我在使用集成安全性的本地mssql服务器数据库上运行以下代码时,它工作正常。当我在远程服务器上运行它时,我能看到的唯一区别是它使用SQLServer身份验证,insert语句不执行,并且没有错误。当我使用listView在服务器上使用SQLDataSource插入或更新时,更新工作正常,我使用的是相同的连接字符串。我只是在将SQLCommand与ExecuteOnQuery一起使用时遇到问题。代码如下: using (SqlConnection thisConnection = new Sql

当我在使用集成安全性的本地mssql服务器数据库上运行以下代码时,它工作正常。当我在远程服务器上运行它时,我能看到的唯一区别是它使用SQLServer身份验证,insert语句不执行,并且没有错误。当我使用listView在服务器上使用SQLDataSource插入或更新时,更新工作正常,我使用的是相同的连接字符串。我只是在将SQLCommand与ExecuteOnQuery一起使用时遇到问题。代码如下:

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中的本地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" />


插入被忽略了

下面是我如何在我的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在本地运行它时执行此操作。如果有人能解释一下,我将不胜感激。

用户是否有插入上述数据库的权限?我想你不明白我的问题。当我连接到sqlExpress时,它位于我的本地计算机上,我使用的是集成安全性。我的问题是,当我连接到使用SQLServer身份验证的GoDaddy的SQLServer时,它不工作。我甚至尝试在本地版本上更改为SQLServer身份验证,效果很好。问题显然出在GoDaddy上。你确定你连接到了正确的“IP”吗?因为这些都是巨大的主机场,它们在站点上的“IP”并不总是与“DB服务器”相同。你还应该在帖子中明确说明,你没有连接到“sqlexpress”DB,因为这会让人感到不快,也可以尝试将你的using语句放在try{}捕获{}块,因为这可能会显示一个不会在堆栈中进一步抛出的错误。谢谢您的回复。我试了一个试接块。没有错误。我确信它是正确的IP,因为只要我使用SqlDataSource,我就可以毫无问题地更新数据库。刚刚注意到您发布的修复,这很奇怪