SQLステートメントを連結することは悪いアプローチです(セキュリティの問題) 。データベースはSQLインジェクションの簡単なターゲットになります。
ストアドプロシージャを使用して必要なデータを追加または変更し、SqlParametersを使用してユーザーインターフェイスから入力を送信することをお勧めします。
役立つかもしれません:ストアドプロシージャを作成する方法
これは、C#を使用してパラメーターを使用してストアドプロシージャを呼び出す方法を示すコード例です。
//The method that call the stored procedure
public void AddComment()
{
using(var connection = new SqlConnection("ConnectionString"))
{
connection.Open();
using(var cmd = new SqlCommand("storedProcedure_Name", connection) { CommandType = CommandType.StoredProcedure })
{
cmd.Parameters.AddWithValue("@CommentFrom", commandFrom);
cmd.Parameters.AddWithValue("@CommentTo", commentTo);
//...And so on
cmd.ExecuteNonQuery();
}
}
}
ストアドプロシージャの作成方法の例
CREATE PROCEDURE storedProcedure_Name
-- Add the parameters for the stored procedure here
@CommentFrom nvarchar(255) = NULL,
@CommentTo nvarchar(255) = NULL
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
-- Insert statements for procedure here
INSERT INTO Comments (CommentFrom, CommentTo) VALUES(@CommentFrom, @CommentTo)
END
GO