我现在用vs.net2005 编写的如下程序,和出错的提示
为什么,高手解决string username, password;
int datarows;
username = txtUser.Text;
password = txtPass.Text;
PublicCls pc = new PublicCls();
SqlConnection conn=new SqlConnection(pc.strConn);
string SQL = "select * from T_User where F_UserName=@username";
SqlCommand Cmd = new SqlCommand(SQL, conn);
SqlParameter parInput = Cmd.Parameters.Add("@username", SqlDbType.Int);
parInput.Direction = ParameterDirection.Input;
parInput.Value = username;
SqlDataAdapter da = new SqlDataAdapter();
conn.Open();
da.SelectCommand = Cmd;
DataSet ds = new DataSet();
datarows = da.Fill(ds,"test");
conn.Close();错误提示:
输入字符串的格式不正确。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.FormatException: 输入字符串的格式不正确。源错误:
行 33: da.SelectCommand = Cmd;
行 34: DataSet ds = new DataSet();
行 35: datarows = da.Fill(ds,"test");
行 36: conn.Close();
行 37: if (datarows == 0)
源文件: c:\Documents and Settings\cqfmp\My Documents\Visual Studio 2005\WebSites\PS\Login.aspx.cs 行: 35 堆栈跟踪:
[FormatException: 输入字符串的格式不正确。]
System.Number.StringToNumber(String str, NumberStyles options, NumberBuffer& number, NumberFormatInfo info, Boolean parseDecimal) +2752819
System.Number.ParseInt32(String s, NumberStyles style, NumberFormatInfo info) +102
System.String.System.IConvertible.ToInt32(IFormatProvider provider) +43
System.Convert.ChangeType(Object value, Type conversionType, IFormatProvider provider) +214
System.Data.SqlClient.SqlParameter.CoerceValue(Object value, MetaType destinationType) +738[FormatException: 将参数值从 String 转换到 Int32 失败。]
为什么,高手解决string username, password;
int datarows;
username = txtUser.Text;
password = txtPass.Text;
PublicCls pc = new PublicCls();
SqlConnection conn=new SqlConnection(pc.strConn);
string SQL = "select * from T_User where F_UserName=@username";
SqlCommand Cmd = new SqlCommand(SQL, conn);
SqlParameter parInput = Cmd.Parameters.Add("@username", SqlDbType.Int);
parInput.Direction = ParameterDirection.Input;
parInput.Value = username;
SqlDataAdapter da = new SqlDataAdapter();
conn.Open();
da.SelectCommand = Cmd;
DataSet ds = new DataSet();
datarows = da.Fill(ds,"test");
conn.Close();错误提示:
输入字符串的格式不正确。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.FormatException: 输入字符串的格式不正确。源错误:
行 33: da.SelectCommand = Cmd;
行 34: DataSet ds = new DataSet();
行 35: datarows = da.Fill(ds,"test");
行 36: conn.Close();
行 37: if (datarows == 0)
源文件: c:\Documents and Settings\cqfmp\My Documents\Visual Studio 2005\WebSites\PS\Login.aspx.cs 行: 35 堆栈跟踪:
[FormatException: 输入字符串的格式不正确。]
System.Number.StringToNumber(String str, NumberStyles options, NumberBuffer& number, NumberFormatInfo info, Boolean parseDecimal) +2752819
System.Number.ParseInt32(String s, NumberStyles style, NumberFormatInfo info) +102
System.String.System.IConvertible.ToInt32(IFormatProvider provider) +43
System.Convert.ChangeType(Object value, Type conversionType, IFormatProvider provider) +214
System.Data.SqlClient.SqlParameter.CoerceValue(Object value, MetaType destinationType) +738[FormatException: 将参数值从 String 转换到 Int32 失败。]
解决方案 »
- 请教下自动更新问题 exe,dll文件报错404 文本和rar没问题
- C# winform程序的配置信息问题
- 询问一个关于注释文档的问题
- 求Treeview控件的例子和使用方法
- c#如果类库中的某个方法已经被移除,请重新编译引用该库的所有程序集
- C#两个类如何互调变量?
- 很急的问题,如何用c#得到那些通过web访问的客户端计算机名称(不要ip)(在线等待)
- 初学c#,提的问题简单,写程序的时候遇到的
- 请教:winform中怎么使用form2中的button给form1中的treeView添加节点?
- WinForm flowLayoutPanel控件的滚动条问题
- 这样算索引查询吗?
- 如何让窗体右上角的关闭叉不可点击
改成
da.Fill(ds,"test");
datarows=ds.Tables["test"].Rows.Count;
datarows = Convert.ToInt32(da.Fill(ds,"test"));
你这里指定了参数为Int型,你确定你的username参数是int吗?
另外:
da.Fill(ds,"test");
datarows=ds.Tables["test"].Rows.Count;
SqlParameter parInput = Cmd.Parameters.Add("@username", SqlDbType.Int);
这句的问题。在2.0中,fill的原型是
public int Fill (
DataSet dataSet,
string srcTable
)
这与1.0,1.1都是一样的。参数
dataSet
要用记录和架构(如果必要)填充的 DataSet。 srcTable
用于表映射的源表的名称。 返回值
已在 DataSet 中成功添加或刷新的行数。这不包括受不返回行的语句影响的行。 具体参见MSDN:
ms-help://MS.MSDNQTR.v80.chs/MS.MSDN.v80/MS.NETDEVFX.v20.chs/cpref4/html/M_System_Data_Common_DbDataAdapter_Fill_2_87c80171.htm
SqlParameter parInput = Cmd.Parameters.Add("@username", SqlDbType.Int);
这个问题,试下换一下数据库中的列的数据类型,换成字符类别的