مرجع تخصصی برنامه نویسان

انجمن تخصصی برنامه نویسان فارسی زبان

کاربر سایت

sara.alivand

عضویت از 1395/04/11

ثبت اطلاعات از drop down list

  • یکشنبه 27 تیر 1395
  • 00:59
تشکر میکنم

سلام شبتون بخیر

من تو فرمی می خاهم اطلاعاتم از کنترل دراپ دان لیست بریزه به پایگاه 

در واقع برا تکمیل فرم کاربر فقط انتخاب میتونه بکنه 

 

حالا تو قسمت insert چه کدی بنویسم

 

 string insert = "insert into tbl_sefaresh (week_day,food_meal,food_name) values ('" + ddlWeek "','" + ddlmeal  "','" +ddlfood  "')";
            SqlCommand cmd = new SqlCommand(insert, db);

اینو نوشتم ولی خطا میده

ممنون میشم اگه زود پاسخ بدهید.

 

پاسخ های این پرسش

تعداد پاسخ ها : 10 پاسخ
کاربر سایت

سجاد باقرزاده

عضویت از 1392/02/24

  • یکشنبه 27 تیر 1395
  • 08:37

برای گرفتن اطلاعات از dropdownlist می بایست برای مثال : ddlWeek.SelectedItem.Text ویا ddlWeek.SelectedItem.Value را استفاده کنید.

و نکته دیگر در کوئری شما این است که بهتر است بجای قرار دادن اطلاعات ddl هایتان داخل خود کوئری بصورت پارامتر انها را ارسال کنید.

 

کاربر سایت

sara.alivand

عضویت از 1395/04/11

  • یکشنبه 27 تیر 1395
  • 12:29

سلام ممنون از توجه شما

من کد رو به این شکل نوشتم

string insert = "insert into tbl_sefaresh (week_day,food_meal,food_name) values ('" + ddlWeek.SelectedItem.Text + "','" + ddlmeal.SelectedItem.Text + "','" + ddlfood.SelectedItem.Text + "')";

ولی برای خط نوشته شده این خطا رو می ده

Object reference not set to an instance of an object.

کاربر سایت

sara.alivand

عضویت از 1395/04/11

  • یکشنبه 27 تیر 1395
  • 12:38

و یه مشکل دیگه این که لیست منو از پایگاه نمیاره 

ولی اولش میاورد 

کاربر سایت

سجاد باقرزاده

عضویت از 1392/02/24

  • یکشنبه 27 تیر 1395
  • 16:33

خب خطای بالا برای همینه که dropdownlist های شما خالی هستند. لطفا کد مربوط به پرکردن لیستهاتون رو اینجا قرار بدید که بتون بررسی کنم.

کاربر سایت

sara.alivand

عضویت از 1395/04/11

  • دوشنبه 28 تیر 1395
  • 20:15

سلام من واقعا ممنون هستم از شما

 

استاد قبول نکرد برا همین اشکال من 

 

اگه میشه کمکم کنید

 

 

 

کد مربوط به drop dwnlist  و کد ثبتش

 

 

protected void ddlfood_SelectedIndexChanged(object sender, EventArgs e)
    {

        if (!this.IsPostBack)
        {
            string constr = ConfigurationManager.ConnectionStrings["selfserviceConnectionString"].ConnectionString;
            using (SqlConnection con = new SqlConnection(constr))
            {
                using (SqlCommand cmd = new SqlCommand("SELECT id, food_name FROM tbl_food"))
                {
                    cmd.CommandType = CommandType.Text;
                    cmd.Connection = con;
                    con.Open();
                    TextBox3.Text = ddlfood.SelectedItem.Value;
                    ddlfood.DataSource = cmd.ExecuteReader();
                    ddlfood.DataTextField = "food_name";
                    ddlfood.DataValueField = "id";

                    ddlfood.DataBind();

                    con.Close();
                }

            }
            ddlWeek.Items.Insert(0, new ListItem("--انتخاب نام غذا--", "0"));

        }
    }
         protected void Btnrezerv_Click(object sender, EventArgs e)
    {

        string con = ConfigurationManager.ConnectionStrings["selfserviceConnectionString"].ConnectionString;
        SqlConnection db = new SqlConnection(con);
        db.Open();
        TextBox1.Text = ddlWeek.SelectedItem.Value;
        TextBox2.Text = ddlmeal.SelectedItem.Value;
        TextBox3.Text = ddlfood.SelectedItem.Value;

        string insert = "insert into tbl_sefaresh (week_day,food_meal,food_name) values ('" + TextBox1.Text  + "','" + TextBox2.Text + "','" + TextBox3.Text + "')";
        SqlCommand cmd = new SqlCommand(insert, db);
        cmd.ExecuteNonQuery();


        Response.Write("<script>alert('اطلاعات با موفقیت درج شد')</script>");


        db.Close();
    }
   
    }

کاربر سایت

سجاد باقرزاده

عضویت از 1392/02/24

  • سه شنبه 29 تیر 1395
  • 16:16

کد ثبت اطلاعاتتون رو به شکل زیر بنویسید :

protected void Btnrezerv_Click(object sender, EventArgs e)
        {
            string con = ConfigurationManager.ConnectionStrings["selfserviceConnectionString"].ConnectionString;
            SqlConnection db = new SqlConnection(con);
            string insert = "insert into tbl_sefaresh (week_day,food_meal,food_name) values (@week_day,@food_meal,@food_name)";
            SqlCommand cmd = new SqlCommand(insert, db);
            cmd.Parameters.AddWithValue("@week_day", ddlWeek.SelectedItem.Value);
            cmd.Parameters.AddWithValue("@food_meal", ddlmeal.SelectedItem.Value);
            cmd.Parameters.AddWithValue("@food_name", ddlfood.SelectedItem.Value);
            db.Open();
            cmd.ExecuteNonQuery();
            db.Close();
            Response.Write("<script>alert('اطلاعات با موفقیت درج شد')</script>");
        }

 

کاربر سایت

سجاد باقرزاده

عضویت از 1392/02/24

  • سه شنبه 29 تیر 1395
  • 16:30

دیتاسورس ddl شما چرا در رویداد SelectedIndexChanged پر شده ؟

بهتر است توسط یک SqlDatasource در صفحه aspx پر شود و DataTextField و DataValueField آن هم در Property خود ddl تنظیم شود.

کاربر سایت

sara.alivand

عضویت از 1395/04/11

  • سه شنبه 29 تیر 1395
  • 17:06

ممنون از لطف شما

 

پس من این روش رو امتحان کنم

 

کاربر سایت

sara.alivand

عضویت از 1395/04/11

  • سه شنبه 29 تیر 1395
  • 17:32

آقای مهندس خیلی ممنونم

درست شد

 

کاربر سایت

سجاد باقرزاده

عضویت از 1392/02/24

  • چهارشنبه 30 تیر 1395
  • 08:09

موفق باشید.

کاربرانی که از این پست تشکر کرده اند

هیچ کاربری تا کنون از این پست تشکر نکرده است

اگر نیاز به یک مشاور در زمینه طراحی سایت ، برنامه نویسی و بازاریابی الکترونیکی دارید

با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)