0

データテーブルは正しい量の行/レコードを返しています.しかし、何らかの理由でGridViewをレンダリングできません..何も表示されません....

編集: GridView は、"RowErrors" 列と "Has Errors" 列を返します。私のデータではありません。

Dim ConnString As String = System.Configuration.ConfigurationManager.ConnectionStrings("oakfratintdbConnectionString").ConnectionString
Dim Conn As New SqlConnection(ConnString)
Dim cmd As New SqlCommand("SELECT * FROM [OFCInterments]", Conn)

Dim DA As New SqlDataAdapter(cmd)
Dim DT As New DataTable
'WHERE ([FirstName] = @FirstName)
cmd.Parameters.AddWithValue("@FirstName", "Mike")


Try
    Conn.Open()
    DA.SelectCommand = cmd
    DA.Fill(DT)
    GridView1.DataSource = DT
    GridView1.DataBind()

    If DT.Rows.Count > 0 Then
        Dim NoResultsText As String = DT.Rows.Count.ToString + " records found."
        txtStatys.Text = NoResultsText
        txtStatys.Visible = True


    End If


Catch ex As Exception
    Throw ex
Finally
    Conn.Close()
    DA.Dispose()
    Conn.Dispose()


End Try
4

1 に答える 1

2

GridView は、"RowErrors" 列と "Has Errors" 列を返します。私のデータではありません。

それは のプロパティではなく、 のプロパティGridViewですDataTable

DataTable.HasErrors財産

を使用して、すべての行エラーDataTable.GetErrors()を取得できます。DataTableそれぞれのRowErrorプロパティを調べるDataRowと、例外の理由がわかります。デバッガーのquick-watch-windowですべて実行できます。


考慮すべきいくつかの点:

GridView は表示されません。いくつかの理由が考えられます。

  • GridView はまったく表示されていますか (プロパティを継承しているため、その親はすべて表示されていますか)?
  • RowDataBoundイベントとキャッチされていない例外を登録しましたか?

一般的な提案:

  • Catch例外を再スローするためだけにブロックを使用しないでください(Throwスタックトレースが保持されるため、単独でも良いでしょう)。代わりに、それをキャッチしたり、それを使って何か役に立つことをしたりしないでください (fe logging)。
  • Using-statementを使用して、接続のような ADO.NET オブジェクトを破棄します (暗黙的に閉じます)。
于 2012-11-13T22:40:41.460 に答える