これはシナリオです:
データベースにいくつかの行を挿入する必要があります。列の 1 つは DateTime 型で、SysDateTime を値として持ちます。通常、クエリは次のようになります。
String sqlString = "INSERT INTO Temas(Id, Level,Date, Description) " +
" VALUES (100, 3, SYSDATETIME() , 'Text ')";
ここで、パラメーターを使用して挿入を行う必要があります。次のようになります。
private void InsertTemaInTesauro(OleDbDataReader origenReader,Materias materia)
{
SqlConnection connectionEpsOle = Conexiones.GetConecction();
SqlDataAdapter dataAdapter;
DataSet dataSet = new DataSet();
DataRow dr;
string sqlCadena = "SELECT * FROM Temas WHERE idTema = 0";
dataAdapter = new SqlDataAdapter();
dataAdapter.SelectCommand = new SqlCommand(sqlCadena, connectionEpsOle);
dataAdapter.Fill(dataSet, "Temas");
dr = dataSet.Tables["Temas"].NewRow();
dr["Id"] = 100;
dr["Level"] = 3;
dr["Date"] = ????;
dr["Description"] = 'Some text';
dataSet.Tables["Temas"].Rows.Add(dr);
//dataAdapter.UpdateCommand = connectionEpsOle.CreateCommand();
dataAdapter.InsertCommand = connectionEpsOle.CreateCommand();
dataAdapter.InsertCommand.CommandText =
"INSERT INTO Temas(Id,Level,Date,Description) (@Id,@Level,@Date,@Description)";
dataAdapter.InsertCommand.Parameters.Add("@Id", SqlDbType.Numeric, 0, "Id");
dataAdapter.InsertCommand.Parameters.Add("@Level", SqlDbType.Numeric, 0, "Level");
dataAdapter.InsertCommand.Parameters.Add("@Date", SqlDbType.DateTime, 0, "Date");
dataAdapter.InsertCommand.Parameters.Add("@Description", SqlDbType.Numeric, 0, "Description");
dataAdapter.Update(dataSet, "Temas");
dataSet.Dispose();
dataAdapter.Dispose();
connectionEpsOle.Close();
}
私の質問は、sysdatetime() の値を取るように日付のパラメーターを設定する方法です。データベースにアクセスできず、DateTime.Now を使用できないため、列のデフォルト値として設定できません。上司はデータベースの時間を望んでいます