我正在尝试从标签和4个tekstbox中将2个int和3个字符串插入到数据库中。
我得到的错误:
方法Insert有一些无效的参数,参数不能从string转换为int。
lblHidden.Text
和TextBoxDagnummer.Text
中包含字符串,但我需要将它们转换为整数。我是在插入之前还是在插入中转换它们,语法是什么?
代码
protected void Button2_Click(object sender, EventArgs e)
{
Vakinhoudclass.Insert(lblHidden.Text, TextBoxDagnummer.Text, TextBoxHoofdstuk.Text, TextBoxOnderwerp.Text, TextBoxLes.Text);
GridView1.DataBind();
}
答案 0 :(得分:2)
尝试使用int.Parse
或int.TryParse
方法。例如:
int number = int.Parse(TextBoxDagnummer.Text)
Vakinhoudclass.Insert(lblHidden.Text, number, TextBoxHoofdstuk.Text, TextBoxOnderwerp.Text, TextBoxLes.Text);
答案 1 :(得分:2)
您需要从字符串中解析出整数。
使用int.Parse
或int.TryParse
从输入中获取整数。
如果无法解析输入,int.Parse
将抛出异常,而TryParse
将返回bool
,表明它是否能够解析
int val;
if(int.TryParse(TextBoxDagnummer.Text, out val))
{
// Parsed OK
}
答案 2 :(得分:0)
我觉得最好在数据库插入之前转换为整数。这样,您可以捕获在与数据库交谈之前可能发生的任何错误。
以下是将字符串转换为整数的简便方法:
Convert.ToInt32(lblHidden.text)
我还建议使用try-catch块
来解决这个问题 try
{
Convert.ToInt32(lblHidden.Text);
}
catch(Exception ex)
{
//an error occured
}
答案 3 :(得分:0)
感谢您对我的问题的反馈,但我遇到了同样的错误: - “Vakinhoudclass.Insert(int,int,string,string,string)”的最佳重载方法匹配具有一些无效参数。 - 参数1和2无法从“string”转换为“int”
立即使用此代码:
int number = int.Parse(TextBoxDagnummer.Text); int number2 = int.Parse(lblHidden.Text); Vakinhoudclass.InsertVakInhoud(lblHidden.Text,TextBoxDagnummer.Text,TextBoxHoofdstuk.Text,TextBoxOnderwerp.Text,TextBoxLes.Text); GridView1.DataBind();
(也尝试使用Covert方法)
修改强>
哎呀我看到我做错了什么,需要将它们粘贴到insert函数中,如下所示: int number = int.Parse(lblHidden.Text); int number2 = int.Parse(TextBoxDagnummer.Text); Vakinhoudclass.InsertVakInhoud(number,number2,TextBoxHoofdstuk.Text,TextBoxOnderwerp.Text,TextBoxLes.Text); GridView1.DataBind();