ASP.NET | C#| Dropdownlist SelectedItem to Database?

时间:2013-11-26 05:42:06

标签: c# asp.net sql sql-server visual-studio-2012

我想将ASP.NET代码隐藏C#Dropdownlist选择值添加到SQL Server数据库。 我正在使用存储过程,在SQL Server中,它在我执行过程时有效。

我已将数据库连接(dal.class)文件添加到VS项目中。

我在dal.class中的代码是

 public void SaveDelData(int pkg_no, int pkg_cat_id, String reference_no, String sender, String receiver_name, String receiver_address, int area_id, int city_id, int zone_id, String date, String telephone, bool isDelete)
 {
            try
            {
                SqlCommand cmdGetItem = new SqlCommand();
                cmdGetItem.Connection = con;
                cmdGetItem.CommandText = "SavedeliveryData"; 
                cmdGetItem.CommandType = CommandType.StoredProcedure;

                cmdGetItem.Parameters.AddWithValue("@pkg_no", pkg_no);
                cmdGetItem.Parameters.AddWithValue("@pkg_cat_id", pkg_cat_id);
                cmdGetItem.Parameters.AddWithValue("@sender", sender);
                cmdGetItem.Parameters.AddWithValue("@receiver_name", receiver_name);
                cmdGetItem.Parameters.AddWithValue("@receiver_address", receiver_address);
                cmdGetItem.Parameters.AddWithValue("@area_id", area_id);
                cmdGetItem.Parameters.AddWithValue("@city_id", city_id);
                cmdGetItem.Parameters.AddWithValue("@zone_id", zone_id);
                cmdGetItem.Parameters.AddWithValue("@date", date);
                cmdGetItem.Parameters.AddWithValue("@telephone", telephone);
                cmdGetItem.Parameters.AddWithValue("@isDelete", isDelete);

                con.Open();
                cmdGetItem.ExecuteNonQuery();
            }
            catch (Exception ex)
            {
            }
            finally
            {
                con.Close();
            }
        }

我在设计页面上有4个下拉列表,从另一个表中获取特定数据的数据。

我的C#代码是

dataAccess data = new dataAccess();

        int pkg_id; 
        if (packageid.Text == string.Empty || packageid.Text == "")
            pkg_id = -1;
        else
            pkg_id = Int32.Parse(packageid.Text);

        string sData1 = this.category.SelectedValue;
        string sData2 = this.area.SelectedValue;
        string sData3 = this.city.SelectedValue;
        string sData4 = this.zone.SelectedValue;

     // string cat = category.SelectedItem.Value.ToString();
     // string areaa = area.SelectedItem.Value.ToString();
     //string cityy = city.SelectedItem.Value.ToString();
     // string zonee = zone.SelectedItem.Value.ToString();

        data.SaveDelData(pkg_id, sData1, sender_name.Text, receivername.Text, receiver_address.Text, sData2,sData3,sData4, date.Text, telephone.Text, false);

我想将send dropdownlist选择项发送到数据库,但它在

中给出了错误
data.SaveDelData(pkg_id, sData1, sender_name.Text, receivername.Text, receiver_address.Text, sData2,sData3,sData4, date.Text, telephone.Text, false);

as

  

方法'SaveDelData'没有重载需要11个参数

我该如何解决这个问题?

提前致谢:)

3 个答案:

答案 0 :(得分:1)

将您的调用更改为“SaveDelData”方法并为其提供12个参数。你只过了11!我想你错过了pkg_cat_id?

答案 1 :(得分:1)

 public void SaveDelData(int pkg_no, int pkg_cat_id, String reference_no, String sender, String receiver_name, String receiver_address, int area_id, int city_id, int zone_id, String date, String telephone, bool isDelete)
    {


     }

显然你可以在上面的函数中计算12个参数

所以你错过了一个,我想它的pkg_cat_id

data.SaveDelData(pkg_id,(integer type parameter here 'pkg_cat_id'), sData1, sender_name.Text, receivername.Text, receiver_address.Text, sData2,sData3,sData4, date.Text, telephone.Text, false);

答案 2 :(得分:0)

根据以下功能定义,您需要在拨打电话时传递12个参数。

public void SaveDelData(int pkg_no, int pkg_cat_id, String reference_no, String sender, String receiver_name, String receiver_address, int area_id, int city_id, int zone_id, String date, String telephone, bool isDelete)

在以下调用中,您只传递了11个参数。

data.SaveDelData(pkg_id, sData1, sender_name.Text, receivername.Text, receiver_address.Text, sData2,sData3,sData4, date.Text, telephone.Text, false);

在上面的呼叫中,第一个参数是包ID,第二个是选择的类别,第三个是发送者的名称。但是根据函数定义,第三个参数应该是字符串引用ID。所以我认为你错过了传递参考ID。将它添加到参数列表中,它可以正常工作。

此致

Nitin Joshi