2012-03-29 11 views
0

以前の類似のすべての記事を既に読んでいますが、解決策が見つかりませんでした。私のコードを見ていただけますか?私は例外がありません。私はちょうどデータベースに新しいデータが表示されません。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

エラーメッセージが表示されますか?それとも何も起こらない? –

+0

一見、私にはうまく見えます。自動でロールバックされるトランザクションを(偶然にも)使用していないと確信していますか? –

+1

質問は重複しないでください。 (http://stackoverflow.com/questions/9932254/cannot-insert-data-into-database) –

答えて

1

私は、これは間違いかではなく、ConfigurationManagerConnectionStringsインデクサは、接続文字列の名前を探しているかはわからない:

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

ConfigurationManager.ConnectionStrings["SomeDB"].ConnectionString 

私はこれが原因だろうと仮定してきましたあなたのコードのエラー、おそらくnull参照例外が、私はそのクラスの仕組みが覚えていません。

2

接続文字列を接続文字列でインデックスしていますか?

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(); 

接続文字列を修正する必要があります。

0

あなたは接続文字列を間違って引っ張っていると思います。 ConfigurationManager.Connectionstringsは、app/web.configファイル内の接続文字列の名前をキーにしています。 .configファイルの名前を使用するか、接続文字列をSqlConnectionオブジェクトのコンストラクタにハードコードしてみてください。

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