Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 从存储过程获取记录时出错_Sql_C# 4.0_Asp.net 4.0 - Fatal编程技术网

Sql 从存储过程获取记录时出错

Sql 从存储过程获取记录时出错,sql,c#-4.0,asp.net-4.0,Sql,C# 4.0,Asp.net 4.0,我有代码从存储过程中获取数据 我只需要存储过程中的记录。但是现在我在使用DataAccess代码的类中遇到了错误: SelectCommand.Connection property has not been initialized. fill data adapter 我只想使用分页跟踪所有行: namespace SpidiWeb.App_Code.Helper { public class DataAccess { public string mstr_C

我有代码从存储过程中获取数据

我只需要存储过程中的记录。但是现在我在使用DataAccess代码的类中遇到了错误:

SelectCommand.Connection property has not been initialized. fill data adapter
我只想使用分页跟踪所有行:

namespace SpidiWeb.App_Code.Helper
{
    public class DataAccess
    {
        public string mstr_ConnectionString;
        public SqlConnection mobj_SqlConnection;
        public SqlCommand mobj_SqlCommand;
        public int mint_CommandTimeout = 30;

        public void GetConnection(string cnn_type, string dbname)
        {
            try
            {
                if (cnn_type == "W")
                {
                    string Cnn_Str = "";

                    //string ServerName = "SHREE-PC";
                    //string DBUserName = string.Empty;
                    //string DBPassword = string.Empty;

                    string ServerName = ConfigurationManager.AppSettings["SERVER"];
                    string DBUserName = ConfigurationManager.AppSettings["UID"] ?? string.Empty;
                    string DBPassword = ConfigurationManager.AppSettings["PASSWORD"] ?? string.Empty;
                    string Database = dbname;
                    DBPassword += "c#" + Convert.ToChar(49);

                    //Cnn_Str = "Server=" + ServerName + ";User Id=" + DBUserName + ";Password=" + DBPassword + ";Initial Catalog=" + Database;
                    Cnn_Str = "Server=" + ServerName + ";Initial Catalog=" + Database +";Integrated Security=True";

                    mstr_ConnectionString = Cnn_Str;
                }
                else if (cnn_type == "S")
                {
                    string Cnn_Str = "";

                    //string ServerName = "SHREE-PC";
                    //string DBUserName = string.Empty;
                    //string DBPassword = string.Empty;

                    string ServerName = ConfigurationManager.AppSettings["SERVER"];
                    string DBUserName = ConfigurationManager.AppSettings["UID"] ?? string.Empty;
                    string DBPassword = ConfigurationManager.AppSettings["PASSWORD"] ?? string.Empty;
                    string Database = "NEWSMSLOG_" + dbname;
                    DBPassword += "c#" + Convert.ToChar(49);

                    //Cnn_Str = "Server=" + ServerName + ";User Id=" + DBUserName + ";Password=" + DBPassword + ";Initial Catalog=" + Database;
                    Cnn_Str = "Server=" + ServerName + ";Initial Catalog=" + Database + ";Integrated Security=True";
                    mstr_ConnectionString = Cnn_Str;
                }
                mobj_SqlConnection = new SqlConnection(mstr_ConnectionString);
                mobj_SqlCommand = new SqlCommand();
                mobj_SqlCommand.CommandTimeout = mint_CommandTimeout;
                mobj_SqlCommand.CommandType = CommandType.StoredProcedure;
                mobj_SqlCommand.Connection = mobj_SqlConnection;
                mobj_SqlConnection.Open();
            }
            catch (Exception ex)
            {
                throw new Exception("Error initializing data class." + Environment.NewLine + ex.Message);
            }
此代码来自我的页面:

DataAccess obj_con = new DataAccess();    

protected void Get_Data()
{
    try
    {
        DataTable dt = new DataTable();
        int intUserId = ddl_users.SelectedItem.Text.ToString() == "All" ? 0 : Convert.ToInt32(ddl_users.SelectedValue.ToString());
        string strCampaignName = string.IsNullOrEmpty(txt_CompaignName.Text.Trim()) ? string.Empty : txt_CompaignName.Text.Trim();
        string mobileNo = string.IsNullOrEmpty(txt_mobileno.Text.Trim()) ? string.Empty : txt_mobileno.Text.Trim();
        int intSenderId = ddl_sender.SelectedItem.Text.ToString() == "All" ? 0 : Convert.ToInt32(ddl_sender.SelectedValue.ToString());
        string strDeliveryId = ddl_delevery.SelectedItem.Text.ToString() == "All" ? "-1" : ddl_delevery.SelectedItem.Text.ToString();

        using (var con = obj_con.mobj_SqlConnection)
        {
            //if (con.State == ConnectionState.Closed)
            //    con.Open();
            var cmd = new SqlCommand();
            cmd.Parameters.AddWithValue("intUserID", intUserId);
            cmd.Parameters.AddWithValue("strCampaignName", strCampaignName);
            cmd.Parameters.AddWithValue("strMobileNo", mobileNo);
            cmd.Parameters.AddWithValue("intSenderId", intSenderId);
            cmd.Parameters.AddWithValue("strDeliveryId", strDeliveryId);

            if (ddl_account.SelectedItem.Text.ToString() == "All")
            {
                cmd.Parameters.AddWithValue("intAccType", DBNull.Value);
            }
            else
            {
                cmd.Parameters.AddWithValue("intAccType", Convert.ToInt32(ddl_account.SelectedValue.ToString()));
            }

            if (chk_date.Checked == true)
            {
                DateTime dateValue = Convert.ToDateTime(CommonLogic.Get_Date_From_String(txt_date_from.Text.Trim(), 1));
                cmd.Parameters.AddWithValue("strdbNM ", dateValue.ToString("yyyy_MM"));
            }
            else
            {
                cmd.Parameters.AddWithValue("strdbNM ", DateTime.Now.Date.ToString("yyyy_MM"));
            }

            if (!string.IsNullOrEmpty(txt_date_from.Text.Trim()))
            {
                DateTime date = Convert.ToDateTime(txt_date_from.Text.Trim());
                cmd.Parameters.AddWithValue("strTBNM", date.ToString("ddMMyy"));
            }
            else
            {
                cmd.Parameters.AddWithValue("strTBNM", DateTime.Now.Date.ToString("ddMMyy"));
            }

            cmd.Parameters.AddWithValue("PageIndex", 1);
            cmd.Parameters.AddWithValue("PageSize", 1000);
            cmd.Parameters.Add("RecordCount", SqlDbType.Int).Direction = ParameterDirection.Output;
            cmd.Connection = con;
            cmd.CommandText = "dbo.Report_ViewCombineReport";
            cmd.CommandType = CommandType.StoredProcedure;

            SqlDataAdapter ad = new SqlDataAdapter(cmd);
            ad.SelectCommand = cmd;
            ad.Fill(dt); // Error Occurs here Fill: SelectCommand.Connection property has not been initialized.
            egrd.DataSource = dt;
            egrd.DataBind();
        }
    }
    catch (Exception ex)
    {
        CommonLogic.SendMailOnError(ex);
    }
}

您并没有传递到SqlCommand对象的连接,而是像下面这样在参数中传递它

var cmd = new SqlCommand("Your query", con);
或者,您也可以将其设置为

cmd.Connection = con;

我们应该发布所有与代码相关的数据。错误消息丢失。请将问题更新为details@KerenCaelen-请现在检查一下