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 回答
0

哦,

原谅我的新手。我的查询访问了一个不同的数据库,我没有提供对 UserId 的访问权限。现在我已经授予访问权限,它工作正常。

于 2013-12-05T16:14:57.720 回答