0

これはシナリオです:

データベースにいくつかの行を挿入する必要があります。列の 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 を使用できないため、列のデフォルト値として設定できません。上司はデータベースの時間を望んでいます

4

3 に答える 3

0

これを試すことができますか?私は今電話をしているので、これは正確な答えではないかもしれませんが、あなたはそれを得るでしょう -

dataAdapter.InsertCommand.CommandText = "INSERT INTO Temas(Id,Level,Date, Description) (@Id,@Level, SYSDATETIME(), @Description")";
于 2013-03-14T18:41:52.077 に答える
0

私はあなたが簡単にこれを行うことができると確信しています:

dataAdapter.InsertCommand.CommandText = 
   "INSERT INTO Temas(Id,Level,Date,Description) (@Id,@Level,SYSDATETIME(),@Description)"
于 2013-03-14T18:37:36.673 に答える
0

あなたはただできますか

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

于 2013-03-14T18:37:46.687 に答える