0

この問題についてできる限りのことを調べて自分自身を混乱させたと確信していますが、何が間違っていたのかを理解することはできませんでした. 私は複数の間違いを犯したと考えているので、改善が必要と思われるヘルプを使用できます。送信ボタンがクリックされたときに入力される調査のページに顧客 ID を入力するユーザーが必要です。リストボックス。送信は、顧客がクローズしたインシデントのみを取得し、それらのみを返し、調査できるインシデントがないことを示すメッセージを生成することになっています。rowfilter = の部分に引用符が正しくないことはわかっているので、どんな助けも大歓迎です。
データ ビューを使用して行をフィルター処理し、その顧客のクローズされたインシデントのみが表示されるようにすることになっています。私は、rowfilter プロパティを、顧客 ID が入力したテキスト ボックスと等しく、DateClosed が null でない複合条件に設定することになっています。

protected void btnGetIncidents_Click(object sender, EventArgs e)
{
    DataView IncidentsTable = (DataView)SqlDataSource1.Select(DataSourceSelectArguments.Empty);
    IncidentsTable.RowFilter = "CustomerID = 'txtCustomerID.Text + And DateClosed is Not Null'";
    DataRowView row = (DataRowView)IncidentsTable[0];

    if (IncidentsTable.Count > 0)
    {
        this.DisplayIncidents();
        this.Enable(true);
        lstIncident.Focus();
    }
}
private void DisplayIncidents()
{
    lstIncident.Items.Add(new ListItem("--Select an Incident--"));
    foreach (DataRowView row in IncidentsTable)
    {
        Incident i = new Incident();
        i.IncidentID = Convert.ToInt32(row["IncidentID"]);
        i.ProductCode = row["ProductCode"].ToString();
        i.DateClosed = Convert.ToDateTime(row["DateClosed"]);
        i.Title = row["Title"].ToString();
        lstIncident.Items.Add(new ListItem(i.CustomerIncidentDisplay(), i.IncidentID.ToString()));
    }
    lstIncident.SelectedIndex = 0;
}   

エラー メッセージは、この Message=Cannot perform '=' operation on System.Int32 and System.String. を示しています。私のrowfilter行に。

はい、もっと良い方法があることは知っていますが、これと私が言及した他の要素を使用するために必要な指示に従っています. ただし、より良い方法について考える時間があれば、ご意見をいただければ幸いです。私はこれに白髪を追加したので、どんな助けでもあなたは私のヒーローです. ありがとう。
他の部品を含める必要がある場合は、6 マイルの長さがすべてだとは思わなかったことをお知らせください。

4

1 に答える 1