String 无法将参数值从字符串转换为Int32 c
我有两个下拉列表:一个是省,一个是市,它们连接到DB。 我希望能够从第一个下拉列表中选择一个省,并能够看到 第二个下拉列表中该特殊省份的城市。 但我收到错误,无法将参数值从字符串转换为Int32。联机数据集ds1=新数据集 My DB: -------- _Province Prv_Id --- int (P.key) Prv_Name --- nvarchar -------------- _City Cty_Id --- int (P.key) Cty_Name --- nvarchar Cty_Prv_Id --- int (F.key) ---------------------------- ---------------------------- My ST.Procedures: ----------------------- ALTER PROCEDURE [dbo].[_City_selectItems] (@vari int) AS BEGIN SELECT * FROM _City WHERE (Cty_Prv_Id=@vari) END -------------------------------------------------- ALTER PROCEDURE [dbo].[_Province_selectAll] AS BEGIN SELECT * FROM _Province END --------------------------------------------------String 无法将参数值从字符串转换为Int32 c,string,stored-procedures,parameters,sqldataadapter,int32,String,Stored Procedures,Parameters,Sqldataadapter,Int32,我有两个下拉列表:一个是省,一个是市,它们连接到DB。 我希望能够从第一个下拉列表中选择一个省,并能够看到 第二个下拉列表中该特殊省份的城市。 但我收到错误,无法将参数值从字符串转换为Int32。联机数据集ds1=新数据集 My DB: -------- _Province Prv_Id --- int (P.key) Prv_Name --- nvarchar -------------- _City Cty_Id --- int (P.key) Cty_Name --- nvarchar C
异常点处Label1.Text的值是多少。由于您正在页面加载上运行此代码,您的label1.text可能尚未初始化。label1仅用于检查。实际上,我不确定在DrpDwnProvince之后我在做什么。DataBind是否自动选择会引发IndexChange事件的索引。您可能需要检查DrpDwnProvince.Items.Count是否大于0,并设置SelectedIndex=0以强制加载Label1.Text。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using System.Data.SqlClient;
namespace WebApplication3_DrpDwnListAndSQL
{
public partial class WebForm2 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
func1();
func2();
//func3();
}
}
protected void DrpDwnProvince_SelectedIndexChanged(object sender, EventArgs e)
{
Label1.Text =DrpDwnProvince.SelectedValue;
//string a = DrpDwnProvince.SelectedValue;
}
//First function for Province DrpDwnList
private void func1()
{
SqlConnection con = new SqlConnection("Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=DrpBoxDB;Data Source=ARASH-PC");
SqlDataAdapter com = new SqlDataAdapter("_Province_selectAll", con);
com.SelectCommand.CommandType = CommandType.StoredProcedure;
DataSet ds = new DataSet();
if (com != null)
{ com.Fill(ds); }
DrpDwnProvince.DataSource = ds;
DrpDwnProvince.DataTextField = "Prv_Name";
DrpDwnProvince.DataValueField = "Prv_Id";
DrpDwnProvince.DataBind();
}
//Second function for City DrpDwnList
private void func2()
{
SqlConnection con = new SqlConnection("Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=DrpBoxDB;Data Source=ARASH-PC");
SqlDataAdapter com1 = new SqlDataAdapter("_City_selectItems", con);
com1.SelectCommand.Parameters.Add("@vari",SqlDbType.Int).Value=Label1.Text;
com1.SelectCommand.CommandType = CommandType.StoredProcedure;
DataSet ds1 = new DataSet();
if (com1 != null)
{ com1.Fill(ds1); }
DrpDwnCity.DataSource = ds1;
DrpDwnCity.DataTextField = "Cty_Name";
DrpDwnCity.DataValueField = "Cty_Id";
DrpDwnCity.DataBind();
}
//Third function for District DrpDwnList
// private void func3()
// {
// }
}
}