重载方法匹配(不能将字符串转换为int)

时间:2012-10-01 14:48:23

标签: c#

我正在尝试从标签和4个tekstbox中将2个int和3个字符串插入到数据库中。

我得到的错误:

  

方法Insert有一些无效的参数,参数不能从string转换为int。

lblHidden.TextTextBoxDagnummer.Text中包含字符串,但我需要将它们转换为整数。我是在插入之前还是在插入中转换它们,语法是什么?

代码

protected void Button2_Click(object sender, EventArgs e)  
{
   Vakinhoudclass.Insert(lblHidden.Text, TextBoxDagnummer.Text, TextBoxHoofdstuk.Text, TextBoxOnderwerp.Text, TextBoxLes.Text);

   GridView1.DataBind();
}

4 个答案:

答案 0 :(得分:2)

尝试使用int.Parseint.TryParse方法。例如:

int number = int.Parse(TextBoxDagnummer.Text)
Vakinhoudclass.Insert(lblHidden.Text, number, TextBoxHoofdstuk.Text, TextBoxOnderwerp.Text, TextBoxLes.Text);

答案 1 :(得分:2)

您需要从字符串中解析出整数。

使用int.Parseint.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();