如何使用SqlDataAdapter从数据集中的存储sql过程中获取数据

本文关键字:数据 存储 sql 过程中 获取 数据集 何使用 SqlDataAdapter 集中 | 更新日期: 2023-09-27 18:18:51

这是从存储过程中获取数据的好方法吗?例如制作select * from base的过程。这是我的代码,但我需要数据集和适配器的帮助:

public static DataSet Osvezi(string naziv_tablice)
{
    SqlCommand cmd = null;
    DataSet dataset = null;
    SqlConnection konekcija = new SqlConnection(ConfigurationManager.AppSettings["skripta"]);
    if (konekcija != null)
    {
        try
        {
            if (konekcija.State == ConnectionState.Closed)
                konekcija.Open();
            cmd = new SqlCommand();
            cmd.Connection = konekcija;
            cmd.CommandType = CommandType.StoredProcedure;
            cmd.CommandText = "Osvezi";
            cmd.Parameters.Add(new SqlParameter("@tablica", SqlDbType.Int)).Value = naziv_tablice;
            cmd.ExecuteNonQuery();
            SqlDataAdapter da = new SqlDataAdapter(cmd);
            // Fill the DataSet using default values for DataTable names, etc
            da.Fill(dataset);
            return dataset;
        }
        catch (Exception ee)
        {
            //Obravnava napak
        }
        finally
        {
            konekcija.Close();
            konekcija.Dispose();
            cmd.Dispose();
        }
        return dataset;
    }
    return dataset;
}

如何使用SqlDataAdapter从数据集中的存储sql过程中获取数据

试试这个:

public static DataSet Osvezi(string naziv_tablice)
{
        try
        {
            using (SqlConnection konekcija = new SqlConnection(ConfigurationManager.AppSettings["skripta"]))
            {
                konekcija.Open();
                using (SqlCommand cmd = new SqlCommand())
                {
                    cmd.Connection = konekcija;
                    cmd.CommandType = CommandType.StoredProcedure;
                    cmd.CommandText = "Osvezi";
                    cmd.Parameters.AddWithValue("@tablica", naziv_tablice??DBNull.Value);
                    using (SqlDataAdapter da = new SqlDataAdapter(cmd))
                    {
                        // Fill the DataSet using default values for DataTable names, etc
                        DataSet dataset = new DataSet();
                        da.Fill(dataset);
                        return dataset;
                    }
                }
            }
        }
        catch (Exception ee)
        {
            //Obravnava napak
        }
    return null;
}

请更正以下内容

你不需要打开连接。
不应该有command.ExecuteNonQuery。
方法中的参数为string,但SqlParameter的数据类型为SqlDbType.Int。