0

データ可能なオブジェクトを使用して、SQL クエリの結果を読み込もうとしています。一部のクエリは機能し、他のクエリは機能しません。データベースにトレースを置いたところ、正しい SQL が通過することがわかりますが、aspx ページが正しく実行されません。ページを実行するために sharepoint 2010 を使用しているため、表示されるエラー メッセージは非常に役に立ちません。dataTable が気に入らないある種のデータ型であると思われますが (他に何が考えられるかわかりません)、それが何であるかはわかりません。誰でも助けてもらえますか?

<%@ page language="C#" %>
<%@ Import Namespace="System.Data.SqlClient" %>
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System" %>
<script runat="server">
//Create string objects


//Create a data table object
DataTable dataTable = new DataTable();

//On page load get the parameters from the URL and assign them to the objects
protected void page_load (Object s, EventArgs e)
    {

    }

//Create new class 
public class ParamDemo
    {

//Create new method to getData    
    public static DataTable GetData()
      {     
            // create connection and reader variables
            SqlConnection conn = null;
            SqlDataReader reader = null;

            //Create a data table object
            DataTable dataTable = new DataTable();
            //String cmdString = new String();
            try
            {

                  // instantiate and open connection
                  conn =  new SqlConnection("Server=myserver;Database=myDB;User Id=UserId;Password=Password");
                  conn.Open();
                  // 1. declare required command object
                  String cmdString = "";

                  cmdString = "SELECT TOP 1 DMA FROM [myDb].[dbo].[dev_table]";
                  SqlCommand cmd = new SqlCommand(
                  cmdString, conn);

                  //get data stream
                  reader = cmd.ExecuteReader();

                  //Record datastream in datatable
                  dataTable.Load(reader);

            }


            finally
            {
                  // close reader
                  if (reader != null)
                  {
                        reader.Close();
                  }

                  // close connection
                  if (conn != null)
                  {
                        conn.Close();
                  }
            }
            return dataTable;
      }
}
4

2 に答える 2

3

エラーが表示されない理由は、エラーを飲み込んでいるからです

try
{
  // data access
}
finally
{
   // clean up
}

少なくとも次のように変更します

try
{
  // data access
}
catch(Exception ex)
{
  // handle the error
}
finally
{
   // clean up
}

エラーをcatchブロックに記録することはできますが、少なくともそこにブレークポイントを設定して、何が問題なのかを調べることができます

于 2013-12-05T15:56:16.563 に答える