从存储过程返回对象

时间:2014-09-21 18:30:54

标签: mysql sql asp.net database stored-procedures

我正在尝试创建一个存储过程,该过程从本地数据库中读取数据并创建一个对象并将其返回。我的问题是我没有使用存储过程,所以我不太了解它。

我知道如何使用存储过程将数据存储到数据库,但我不知道如何通过存储过程返回数据。

下面是我为返回对象而创建的存储过程。

CREATE PROCEDURE [dbo].[get_Advertisements]
AS
BEGIN
    Select * From  Advertisements;         
END

我知道上面的存储过程只选择记录,但我想做的是:

  1. 从广告表中一次选择一条记录
  2. 创建广告类对象并传递从广告表中读取的值
  3. 返回对象
  4. 继续上述步骤,直到读完整个表格。
  5. 广告对象具有以下属性: - 话题 - 内容

    我如何实现这一目标?请帮助,我试着自己做,但我对返回的部分感到困惑。

    感谢您的时间

1 个答案:

答案 0 :(得分:1)

试试这个:

这适用于SQL Server和ASP.NET

string connetionString = null;
            SqlConnection sqlCnn ;
            SqlCommand sqlCmd ;
            SqlDataAdapter adapter = new SqlDataAdapter();
            DataTable ds = new DataTable();
            int i = 0;
            string sql = null;

            connetionString = "Data Source=ServerName;Initial Catalog=DatabaseName;User ID=UserName;Password=Password";
// this should be always in web.config file
            sql = "Select * from Advertisements";

            sqlCnn = new SqlConnection(connetionString);
            try
            {
                sqlCnn.Open();
                sqlCmd = new SqlCommand(sql, sqlCnn);
                adapter.SelectCommand = sqlCmd;
                adapter.Fill(ds);


                adapter.Dispose();
                sqlCmd.Dispose();
                sqlCnn.Close();


//in ds You will get a Table 
    foreach(DataRow row in thisTable.Rows)
        {
            foreach(DataColumn column in thisTable.Columns)
            {
               Response.write((row[column]+"</br>");
// read all values of table
            }
    }

            }
            catch (Exception ex)
            {

            }