2016-04-23 15 views
-1

私はフォーラムで多くのことを調べて問題を調査しましたが、私を助けた何かを見つけることができませんでした。 私はここから多くの提案を試みました。 私はサイトと3つのサインアップページを持っています。どのページにもいくつかの情報があり、バリデーターはすでにセットアップされており、SQL Server(Microsoft Visual Studioコミュニティ2015)を構築しました。ここで最初のサインアップページのコードは次のとおりです。問題は、表が予約語であるということでしたC#INSERT INTO isn`t working(web sql)

EDIT 、私はちょうど、[表]を書かなければならなかった代わりに、SqlCommandオブジェクト

の表のすべてのヘルプはします推定される。

+0

[いいえ、私はあなたがすべき –

+0

すべてのエラーを得ている:それはAddメソッドを使用して実行する必要があるので、

UPDATE 2 SQL Parametersコレクションは、パラメータが含まれていません。 mdfファイルに直接接続しないでください。資格情報を持っておらず、間違ったデータベースに書き込んでいる可能性があります。 SQL Serverでデータベース名を使用します。サーバーは、添付されたときにファイル名をすでに知っています。接続文字列には、サーバー名が必要です。 'USE database_name'ステートメントを追加して、正しいデータベースを選択できます(サーバーに複数のデータベースがある可能性があります)。 – D4NieLDev

+0

すべてのエラーを受信して​​いない – jdweng

答えて

4

あなたが値を割り当てるときに、パラメータの前後に引用符を追加する必要があります:あなたのケースで@emailemailは、同じ文字列変数を参照するので、あなたが引用符を必要とする理由

sqlCommand.Parameters["@email"].Value = email; 
sqlCommand.Parameters["@username"].Value = userName; 

理由があります。あなたは、私はそれが作品の上またはないコーディングし、そうでない場合は100%わからないWhat's the use/meaning of the @ character in variable names in C#?

への回答にC#で@記号についての詳細を読むことができます - あなたは、あなたは、メソッドAddAddWithValueを使用する必要があります。メソッドに関係なく@emailの代わりに"@email"を使用する必要があります。

Addを使用してAddWithValueを推奨する理由は、this articleを参照してください。

EDIT:問題は異なるようです。つまり、あなたがこれらの値を変更するコードの中でどこにも続いて

string email = null, userName = null; 

を彼らはまだnullのまま:あなたのコードでは、nullemailusernameを割り当てません。

if (email != null && userName != null) 

自分の価値観はまだnullあり、そしてif文の内部ロジックが実行されることはありません。そして、あなたは、この行を取得するとき。コードのこの部分を最初に修正すると、私の最初の答えも同様に役立ちます。

sqlCommand.Parameters.Add("@email", SqlDbType.VarChar, 50).Value = email; 
sqlCommand.Parameters.Add("@userName", SqlDbType.VarChar, 12).Value = userName; 
+0

ありがとう、私はそれを試してみます – D4NieLDev

+0

まだ私は私のSQLスクリプトに問題があると思う、私は質問にそれを添付します – D4NieLDev

+0

@ D4NieLDev私は上記の答え。あなたの 'if'文は決して実行されないようです – dotnetom