客户端ADO.NET调用无法填充数据集

问题描述:

我有一个ASP.NET网页,需要在我的aspx文件的脚本sectipn中从客户端进行SQL Server调用。我打电话一个存储过程,需要一个parm。这个sp在预期的SQL Server Management Studio中正常工作返回记录。当我尝试从调用这个sp的数据集中填充数据集时,ds会被记录为零。有没有关于从我错过的客户端拨打电话的问题。这是我的代码。为了测试目的,我很难编码parm。 PS - 我有这个尝试赶上,没有错误只是一个空的数据集.Thnx。客户端ADO.NET调用无法填充数据集

  string strAssignedTo = "Dwight Shoemaker"; 



      System.Data.DataSet ds = new System.Data.DataSet(); 
      System.Data.SqlClient.SqlConnection sqlcon = new System.Data.SqlClient.SqlConnection("Data Source=sql394.mysite4now.com;Initial Catalog=ULS_db1;User ID=uls2008;Password=uls2008"); 
      System.Data.SqlClient.SqlCommand comand = new System.Data.SqlClient.SqlCommand(); 
      comand.Connection = sqlcon; 
      comand.CommandText = "GetAssignedToReport"; 
      comand.CommandType = System.Data.CommandType.StoredProcedure; 

      comand.Parameters.Add(new System.Data.SqlClient.SqlParameter("@assignedTo", System.Data.SqlDbType.VarChar, 50)); 
      comand.Parameters["@assignedTo"].Value = strAssignedTo; 

      System.Data.SqlClient.SqlDataAdapter sqladp = new System.Data.SqlClient.SqlDataAdapter(comand); 

      sqlcon.Open(); 
      sqladp.Fill(ds); 

我试过你的代码,它没问题。在这可能是错误的是这样的: 如果你尝试绑定gridView如: gridView.DataSource= ds; 你什么也看不到。我试过你的例子,而不是以前的代码,我已经绑定了GridView,像这样: gridView.DataSource = ds.Tables[0]; 我看到你的记录。 列名称:assigned_dt,值为:2005年5月7日,2005年5月2日。这是你所期望的。 问候

+0

是的 - 我现在看到记录。我尝试了你的建议。我正在设置Crystal Report的数据源 - 但在显示时仍不显示记录。有什么想法吗。我使用数据集(xsd文件)创建了报告模板。这里是我的代码不起作用: ULS_Site.Reports.EquipAssinedTo oRpt = new ULS_Site.Reports.EquipAssinedTo(); oRpt.SetDataSource(ds.Tables [0]); CrystalReportViewer1.ReportSource = oRpt; – MikeD 2009-10-30 13:16:40

+0

我只是尝试了一个简单的测试,它的工作原理。它一定是我的数据集定义搞砸了。我参加了大约5桌,所以我会看看。谢谢ZM。 – MikeD 2009-10-30 14:03:54

+0

只有当我必须处理ADO.Net时有个人喜好:当您知道结果使用一个选择并使用数据集时使用DataTable,当您使用具有多个选择的查询时。 – Min 2009-10-30 15:33:08

不知道你的意思:ASP.Net C#代码总是在Web服务器上运行,在客户端NEVER。两者不会混合。

你是如何声明你的 “脚本”:


根据您的评论

更新?有两种方法可以做到这一点:

  • 单个<script runat="server"> //code here </script>元素。这可以处理任何页面事件,包括页面加载。

  • 内联脚本元素/蜂蜇。穿插在你的标记中的<% %>标签。这些标签中的代码在页面加载时运行是一种常见的误解。正如你可能从我的使用词“错误观念”中收集到的,这是错误。那些代码中的代码直到页面生命周期的很久以后才运行(PreRender,IIRC)。

需要注意的是第二项特别,因为这代码运行后绑定阶段已经完成。如果您想将该数据集用作控件的数据源,则需要手动进行DataBind()。

+0

对不起,我的意思是我没有使用代码,而是在我的aspx文件中的脚本中定义我的页面加载。 – MikeD 2009-10-30 14:05:40

+0

我正在使用第一种方法。 – MikeD 2009-10-30 16:41:43