あなたが値を割り当てるときに、パラメータの前後に引用符を追加する必要があります:あなたのケースで@email
とemail
は、同じ文字列変数を参照するので、あなたが引用符を必要とする理由
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#で@
記号についての詳細を読むことができます - あなたは、あなたは、メソッドAdd
かAddWithValue
を使用する必要があります。メソッドに関係なく@email
の代わりに"@email"
を使用する必要があります。
Add
を使用してAddWithValue
を推奨する理由は、this articleを参照してください。
EDIT:問題は異なるようです。つまり、あなたがこれらの値を変更するコードの中でどこにも続いて
string email = null, userName = null;
を彼らはまだnull
のまま:あなたのコードでは、null
にemail
とusername
を割り当てません。
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;
[いいえ、私はあなたがすべき –
すべてのエラーを得ている:それは
Add
メソッドを使用して実行する必要があるので、UPDATE 2 SQL Parametersコレクションは、パラメータが含まれていません。 mdfファイルに直接接続しないでください。資格情報を持っておらず、間違ったデータベースに書き込んでいる可能性があります。 SQL Serverでデータベース名を使用します。サーバーは、添付されたときにファイル名をすでに知っています。接続文字列には、サーバー名が必要です。 'USE database_name'ステートメントを追加して、正しいデータベースを選択できます(サーバーに複数のデータベースがある可能性があります)。 – D4NieLDev
すべてのエラーを受信していない – jdweng