SysDateTime()将插入查询作为参数

本文关键字:参数 查询 插入 SysDateTime | 更新日期: 2023-09-27 18:03:51

场景如下:

我需要在我的数据库中插入一些行,其中一列是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。因为老板想要数据库的时间

SysDateTime()将插入查询作为参数

我很确定你可以这样做:

dataAdapter.InsertCommand.CommandText = 
   "INSERT INTO Temas(Id,Level,Date,Description) (@Id,@Level,SYSDATETIME(),@Description)"

dataAdapter.InsertCommand。CommandText = "INSERT INTO Temas(Id,Level,Date,Description) (@Id,@Level, SYSDATETIME(),@Description)";

你能试试吗?我现在在打电话,所以这可能不是确切的答案,但你会得到它-

dataAdapter.InsertCommand.CommandText = "INSERT INTO Temas(Id,Level,Date, Description) (@Id,@Level, SYSDATETIME(), @Description")";