2

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

我得到的错误:

方法 Insert 有一些无效的参数,参数不能从字符串转换为 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

4 回答 4

2

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

int number = int.Parse(TextBoxDagnummer.Text)
Vakinhoudclass.Insert(lblHidden.Text, number, TextBoxHoofdstuk.Text, TextBoxOnderwerp.Text, TextBoxLes.Text);
于 2012-10-01T14:50:25.543 回答
2

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

使用int.Parseorint.TryParse从输入中获取整数。

如果输入不能被解析,int.Parse会抛出异常,同时TryParse会返回一个bool指示它是否能够解析。

int val;

if(int.TryParse(TextBoxDagnummer.Text, out val))
{
  // Parsed OK
}
于 2012-10-01T14:50:35.430 回答
0

我觉得最好在插入数据库之前转换为整数。这样,您就可以在与数据库交谈之前捕获任何可能发生的错误。

这是将字符串转换为整数的简单方法:

Convert.ToInt32(lblHidden.text)

我还建议用 try-catch 块围绕它

            try
            {
                Convert.ToInt32(lblHidden.Text);
            }
            catch(Exception ex)
            {
                //an error occured
            }
于 2012-10-01T14:52:50.383 回答
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();

(也尝试过使用隐蔽方法)

编辑

哎呀,我看到我做错了什么,需要像这样将它们粘贴到插入函数中: int number = int.Parse(lblHidden.Text); int number2 = int.Parse(TextBoxDagnummer.Text); Vakinhoudclass.InsertVakInhoud(number, number2, TextBoxHoofdstuk.Text, TextBoxOnderwerp.Text, TextBoxLes.Text); GridView1.DataBind();

于 2012-10-02T09:39:04.690 回答