无法将数据插入到SQL Server数据库中

问题描述:

我已阅读所有以前的类似帖子,但找不到解决方案。你能看看我的代码吗?我没有任何例外。我只是看不到数据库中的新数据。无法将数据插入到SQL Server数据库中

int admin = 23; 

SqlConnection thisConnection = new SqlConnection(
    ConfigurationManager.ConnectionStrings["myconnectionstring"].ConnectionString); 

SqlCommand nonqueryCommand = thisConnection.CreateCommand(); 

thisConnection.Open(); 

nonqueryCommand.CommandText = 
    "INSERT INTO Account (Username, Password, AdministratorId) VALUES (@username, @password, @admin)"; 

nonqueryCommand.Parameters.Add("@username", SqlDbType.VarChar, 20); 
nonqueryCommand.Parameters["@username"].Value = UsernameTextbox.Text.ToString(); 
nonqueryCommand.Parameters.Add("@password", SqlDbType.VarChar, 15); 
nonqueryCommand.Parameters["@password"].Value = PasswordTextbox.Text.ToString(); 
nonqueryCommand.Parameters.Add("@admin", SqlDbType.Int); 
nonqueryCommand.Parameters["@admin"].Value = admin; 

nonquerycommand.ExecuteNonQuery(); 

thisConnection.Close(); 
+0

您是否收到错误信息?或者什么都没有发生? – 2012-03-29 20:06:01

+0

乍一看对我来说很好。你确定你没有(无意中)使用一个正在被自动回滚的交易吗? – 2012-03-29 20:06:39

+1

不要复制你的问题。 (http://*.com/questions/9932254/cannot-insert-data-into-database) – 2012-03-29 20:07:02

我不知道这是否是一个错误或没有,但ConnectionStrings索引在ConfigurationManager正在寻找名称的连接字符串的

<connectionStrings> 
    <add name="SomeDB" connectionString="..." /> 
</connectionStrings> 

ConfigurationManager.ConnectionStrings["SomeDB"].ConnectionString 

我认为这会造成过你的代码中有一个错误,也许是一个空引用异常,但我不记得那个类是如何工作的。

您正在使用连接字符串为连接字符串集合编制索引吗?

int admin = 23; 

    SqlConnection thisConnection = new SqlConnection(
"Data Source=...;Persist Security Info=True;User ID=myusername;Password=mypassword"); 
SqlCommand nonqueryCommand = thisConnection.CreateCommand(); 
thisConnection.Open(); 
nonqueryCommand.CommandText = "INSERT INTO Account (Username,Password,AdministratorId) VALUES (@username,@password,@admin)"; 

nonqueryCommand.Parameters.Add("@username", SqlDbType.VarChar, 20); 
nonqueryCommand.Parameters["@username"].Value = UsernameTextbox.Text.ToString(); 
nonqueryCommand.Parameters.Add("@password", SqlDbType.VarChar, 15); 
nonqueryCommand.Parameters["@password"].Value = PasswordTextbox.Text.ToString(); 
nonqueryCommand.Parameters.Add("@admin", SqlDbType.Int); 
nonqueryCommand.Parameters["@admin"].Value = admin; 

nonquerycommand.ExecuteNonQuery(); 


thisConnection.Close(); 

您需要修复连接字符串。

我认为你正在拉错连接字符串。 ConfigurationManager.Connectionstrings键入app/web.config文件中的连接字符串的名称。尝试在.config文件中使用该名称,或者仅将连接字符串硬编码到SqlConnection对象构造函数中。

SqlConnection thisConnection = new SqlConnection(
    ConfigurationManager.ConnectionStrings["NameOfConnectionString"].ConnectionString);