1

このような他の質問では正しい答えが見つからないようです。

このコードを使用して、データベースに保存する日付を割り当てています。

request.BranchRequestDate = DateTime.Now;

そして、この関数を使用してテーブルからデータを取得しようとしているとき。

public Request SelectByID()
    {
        try
        {
            SqlCommand command = this.GetParametizedCommand("SELECT * FROM Request WHERE RequestUID = '" + this.RequestUID.ToString() + "' ;");
            command.CommandType = CommandType.Text;
            SqlDataAdapter adapter = new SqlDataAdapter(command);
            DataTable tbl = new DataTable();
            adapter.Fill(tbl); //This is where the exception is thrown
            return ToEntity(tbl);
        }
        catch
        {
            return null;
        }

    }

...例外をスローします。

私はすべてをチェックしようとしましたが、取得したデータがC#でどのように見えるかがわからないため、なぜスローして例外が発生するのかわかりませんが、SQL Server自体でステートメントを試してみました。正しいデータを返します。

何か案が?

EDIT:同じプログラムの同様の機能と比較しましたが、問題なく機能します。

編集: GetParametizedCommand メソッドのコード

public SqlCommand GetParametizedCommand(String commandText)
    {
        try
        {
            SqlCommand command = base.GetSqlCommand(commandText);
            if(SavingStatus == Util.SavingStatus.INSERT)
                command.Parameters.Add(new SqlParameter("@RequestUID", SqlDbType.Int,32, ParameterDirection.Output, false, 38, 38, "RequestUID", DataRowVersion.Default, this.RequestUID));
            else if (SavingStatus == Util.SavingStatus.UPDATE || SavingStatus == Util.SavingStatus.DELETE)
                command.Parameters.Add(new SqlParameter("@RequestUID", SqlDbType.Int,32, ParameterDirection.Input, false, 38, 38, "RequestUID", DataRowVersion.Default, this.RequestUID));
            command.Parameters.AddWithValue("@DisplayID", this.DisplayID);
            command.Parameters.AddWithValue("@BranchUID", this.BranchUID);
            command.Parameters.AddWithValue("@EmployeeUID", this.EmployeeUID);
            command.Parameters.AddWithValue("@BranchRequestDate", this.BranchRequestDate);
            command.Parameters.AddWithValue("@IsDeleted", this.IsDeleted);
            return command;
        }
        catch
        {
            return null;
        }

    }
4

1 に答える 1