ASP.NET中SqlDataAdapter的应用
我在前台页面中创建了一个GridView,想通过后台代码中返回的数据让GridView显示,且据有分面的功能.
后台代码函数为:
public static DataSet GetProducts(int ID)
{
SqlConnection myConnection = new SqlConnection(Constr);
SqlCommand myCommand = new SqlCommand("SelectCity", myConnection);
// 设置sqlCommand的模式为执行存储过程
myCommand.CommandType = CommandType.StoredProcedure;
SqlParameter parameterID = new SqlParameter("@ID", SqlDbType.Int, 4);
parameterID.Value = ID;
myCommand.Parameters.Add(parameterID);
myConnection.Open();
SqlDataAdapter abc = new SqlDataAdapter(myCommand.ExecuteScalar()); DataSet dtr = new DataSet();
abc.Fill(dtr);
return dtr;
}
一般的情况SqlDataAdapter的使用方法是:SqlDataAdapter abc = new SqlDataAdapter(sql,connect)
我想通过存储过程SelectCity返回的值作为数据来填充DataSet对象dtr,不知道如何让SqlDataAdapter来接收存储过程返回
结果.上面红色的部分应该怎么写啊.
存储过程SelectCity代码如下:
ALTER PROCEDURE dbo.SelectCity
(
@ID int
)
AS
SELECT
ID,
CityName
FROM
City
WHERE
ID=@ID
------解决方案--------------------SqlDataAdapter abc = new SqlDataAdapter("SelectCity", myConnection);
这样就行
前面的Command不用
------解决方案--------------------C# code
public static DataSet GetProducts(int ID)
{
SqlConnection myConnection = new SqlConnection(Constr);
SqlCommand myCommand = new SqlCommand("SelectCity", myConnection);
// 设置sqlCommand的模式为执行存储过程
myCommand.CommandType = CommandType.StoredProcedure;
SqlParameter parameterID = new SqlParameter("@ID", SqlDbType.Int, 4);
parameterID.Value = ID;
myCommand.Parameters.Add(parameterID);
SqlDataAdapter abc = new SqlDataAdapter(myCommand);
DataSet dtr = new DataSet();
abc.Fill(dtr);
return dtr;
}
------解决方案--------------------
建议用存储过程分页。然后用ObjectDataSource作为GridView的数据源。ObjectDataSource你看看它的属性栏,它本身就支持分页(EnablePaging属性),还有startRowIndexParameterName, maximumRowsParameterName,SelectCountMethod等等属性。这些都与自定义分页有关。
参考Scott Mitchel的Data Access Tutorials.
http://www.asp.net/learn/data-access 其中#24~#27部分。
------解决方案--------------------
SqlDataAdapter abc=new SqlDataAdapter('SelectCity',myConnection)像这样写应该就可以了。