我需要插入我的數據庫中的某些行,其中一列是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,因爲老闆想要數據庫的時間
如何預先運行查詢以獲取SysDateTime? – Oliver 2013-03-14 18:35:34
你的問題的目標沒有多大意義。參數用於將代碼中的值傳遞給查詢。如果您想在查詢中使用'SYSDATETIME()'的值,那麼只需在查詢中使用'SYSDATETIME()'並使用其他參數。爲什麼要跳過尋找一個比你現有的效果差的解決方案? – JLRishe 2013-03-14 18:37:41
如果您想從客戶端提供日期/時間,爲什麼不使用:'DateTime.Now'作爲參數。如果你想使用服務器時間,不要在那裏使用一個參數。使用'SYSDATETIME()'來代替,就像你以前一直在做的那樣。這是完全有效的。 – 2013-03-14 18:37:49