SQL Server 2008 の使用を開始したばかりです。アプリケーションからデータベースにデータを挿入する必要がある winforms アプリケーションがあり、一部のテキスト ボックスの値が空になる可能性があります。グーグルで検索した後、何かを見つけましたが、説明します。
DBにレコードを挿入するこのコードを見つけました(接続コードを除く)
stringInsert += "INSERT INTO MyDatabase(dateTime, Name, Surname)";
stringInsert += "VALUES(@Date, @NameString, @SurnameString)";
SqlCommand cmd = new SqlCommand(stringInsert, con);
cmd.CommandType = CommandType.Text;
cmd.Parameters.Add(new SqlParameter("@Date", strTime));
cmd.Parameters.Add(new SqlParameter("@Name", StringName));
cmd.Parameters.Add(new SqlParameter("@Surname", StringSurname));
if (string.IsNullOrEmpty(StringName))
cmd.Parameters.Add(new SqlParameter("@Name", DBNull.Value.ToString()));
else
cmd.Parameters.Add(new SqlParameter("@Name", StringName));
しかし、他の誰かがその方法を書いたcmd.Parameters.AddWithValue("@Name" , StringName);
ifStringName
が null または空の場合は設定されるため、自動で if else を実行しますDBNull.Value
今私の質問は次のとおりです。
cmd.Parameters.Add(new SqlParameter("@Name", StringName));
stringInsert を StringName に変更する方法がわかりません。「@Name」は文字列の一部にすぎないので、記号「@」は私が知らないことをしているのかもしれません。通常、@"c:\home" のようにエスケープを除外する必要がある場合は、@ 記号を使用します。が空またはnullで
cmd.Parameters.AddWithValue("@Name" , StringName);
あっても正しい使用ですか?StringName
これは、WinForm アプリケーションで多くのテキスト ボックスを使用して SQL Server DB にデータを送信する正しい方法ですか?
ありがとう