おはようございます!私は以下のコードで見られるようなパラメータを使って動的クエリを構築しています。パラメータとして動的クエリでgetdate()を渡す
c.Open();
string columns = "(";
string values = "(";
foreach (DataGridViewColumn column in rootDataView.Columns)
{
if (virtualColumns.Contains(column.Name))
{
}
else
{
columns += column.Name + ",";
values += "@" + column.Name + " ,";
}
}
columns = columns.Substring(0, columns.Length - 1) + ")";
values = values.Substring(0, values.Length - 1) + ")";
SqlCommand command = new SqlCommand("insert into " + tableName + " " + columns + " Values " + values, c);
foreach (DataGridViewColumn column in rootDataView.Columns)
{
if (virtualColumns.Contains(column.Name))
{
}
else
{
if (column.Name != "timeFrom")
{
command.Parameters.AddWithValue("@" + column.Name, editedRow.Cells[column.Name].Value);
}
else
{
command.Parameters.AddWithValue("@" + column.Name, System.DateTime.Now);
}
}
}
command.ExecuteNonQuery();
しかし、私は、この行に問題が発生した
command.Parameters.AddWithValue("@" + column.Name, System.DateTime.Now);
私は、SQLサーバーと、この時刻を同期する必要があるので、私はこのようにそれを入力したときに、私は何とかパラメータとしてGETDATE()
に合格する必要がありますが、
command.Parameters.AddWithValue("@" + column.Name, "GetDate()");
機能を呼び出さないように文字列/ varcharとして送信されています。
パラメータとして関数を渡す方法があるか、またはクエリ文字列の@timeFrom
部分を置き換える必要があるかどうかを知りたいと思います。
EDIT:太字の部分に注意してください、それが問題だ -
「GetDate()」を直接クエリに貼り付けてみませんか?私はパラメータなしで意味する。 – Mikey
パラメータの有無に応じて異なるコマンドテキストを作成する必要があります。 – Serg
私が記述した方法が存在するかどうかを知りたいが、アプローチはあまりにも機能する。 @Mikey –