private void getArticle() //取得分类文章
{
try
{                
                SqlConnection conn = new SqlConnection("server=.;database=zznews;uid=sa;pwd=");
conn.Open();         
SqlDataAdapter myCommand = new SqlDataAdapter();  //创建SqlDataAdapter 类
  myCommand.SelectCommand=new SqlCommand("sp_selCkArticleByClass",conn);
myCommand.SelectCommand.CommandType=CommandType.StoredProcedure ;
SqlParameter classname=myCommand.SelectCommand.Parameters.Add("@classname",SqlDbType.Char,200);
classname.Value = Page.Request["classname"];


DataSet ds=new DataSet();  //建立并填充数据集
myCommand.Fill(ds);     

DataGrid1.DataSource=ds;
DataGrid1.DataBind();

lblCurrentIndex.Text="第"+((Int32)DataGrid1.CurrentPageIndex+1)+"页";
lblPageCount.Text="/共"+DataGrid1.PageCount+"页";
conn.Close()  ;
}
catch(SqlException e)
{
Console.WriteLine("Exception in Main: " + e.Message); //出错处理
}
}
请着重讲一下红字部分。

解决方案 »

  1.   

    这段调用sp_selCkArticleByClass这个存储过程,并给过程参数classname赋值。记得微软建议自定义存储过程不要用“sp_”开头以区别于系统存储过程,好像是这样的。
      

  2.   

    1.知道了 存储过程名
    2.知道了 是通过存储过程操作数据库
    3.知道了 传递给存储过程的参数是:@classname
    4.知道了 classname的值是从页面传递来的["classname"]的值。后面自然就可以用 这个参数去操作数据库了。
      

  3.   


    myCommand.SelectCommand=new SqlCommand("sp_selCkArticleByClass",conn); /*建立要执行的SQL*/
    myCommand.SelectCommand.CommandType=CommandType.StoredProcedure ; /*指明要执行的SQL是存储过程*/
    SqlParameter classname=myCommand.SelectCommand.Parameters.Add("@classname",SqlDbType.Char,200); /*为存储过程提供所需要的参数*/
    classname.Value = Page.Request["classname"]; 
    这个没有什么特别的.如果你看一个数据中相应的这个存储过程,就发现和直接写SQL语名是一样用的.