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

时间:2009-10-29 20:57:31

标签: asp.net sql ado.net dataset client

我有一个ASP.NET网页,需要在我的aspx文件的脚本sectipn中从客户端进行SQL Server调用。我正在调用一个存储过程,它需要一个parm。此sp在SQL Server Management Studio中正常工作,按预期返回记录。当我尝试从对此sp的调用中填充数据集时,ds将填充零记录。是否有一些关于从客户端进行此调用的事情,我错过了。这是我的代码。为了测试目的,我很难对parm进行编码。 PS - 我在try catch中有这个并且没有错误只是一个空数据集.Thnx。

            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);

2 个答案:

答案 0 :(得分:1)

我已经尝试过您的代码了,没关系。关于可能出错的事情是这样的: 如果您尝试绑定gridView,如: gridView.DataSource= ds; 你什么也看不见。我试过你的例子,但不是以前的代码,我绑定gridView像这样: gridView.DataSource = ds.Tables[0]; 我看到你的记录。 列名:assigned_dt,其值为:7/5 / 2005,5 / 2/2005。这是你所期望的。 此致

答案 1 :(得分:0)

不确定您的意思:ASP.Net C#代码始终在Web服务器上运行,客户端 NEVER 。这两个只是不混合。


根据您的评论进行更新:

你是如何宣布你的“剧本”的?有两种方法可以做到:

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

  • 内联脚本元素/蜜蜂蜇伤。 <% %>标记散布在您的标记中。这是一种常见的误解,即这些标记中的代码在页面加载时运行。正如你可能从我使用的单词“misconception”中得到的那样,这是错误的。这些标记中的代码直到页面生命周期的晚些时候才会运行(PreRender,IIRC)。

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