在asp.net中将String转换为整数

时间:2013-05-16 13:01:41

标签: asp.net vb.net

我有一个gridview,其中我在check_changed上插入了一个复选框,即使我编写以下代码来获取问题ID的值,如图所示也显示文本框中的值,但是当我在SQL中使用这些字符串时:

Select * from IssueBook Where IssueId IN (values)

它显示在check_changed上将varchar转换为数字的错误我写了这些代码我已经采用了IssueId(数字)

Protected Sub CheckBox1_CheckedChanged1(ByVal sender As Object, ByVal e As System.EventArgs)
        Dim x As String = ""
        For Each row As GridViewRow In GridView1.Rows
            Dim cb As CheckBox = row.FindControl("checkbox1")
            If cb IsNot Nothing AndAlso cb.Checked Then
                If x <> "" Then
                    x += ","
                End If
                x += row.Cells(1).Text
            End If
        Next
        RwId.Text = x
        Session("SelctdIsuedBokNo") = RwId.Text

在数据表中我使用了数值。 如何将上述代码转换为整数,例如4,5,6,使用逗号分隔符?

6 个答案:

答案 0 :(得分:1)

IN语句需要逗号分隔值列表,而不是带有这些值的“字符串”。

您应该创建一个动态SQL并将其传递给您的Command(SqlCommand或您用于执行SQL的任何方法)...类似于:(如果您使用的是SqlClient)

SqlCommand cmd = new SqlCommand(String.Format("Select * from IssueBook Where IssueId IN ({0})", values), your_connection);

希望它有所帮助。

答案 1 :(得分:0)

如何使用Convert.ToInt32();功能

  

http://msdn.microsoft.com/en-us/library/sf1aw27b.aspx

答案 2 :(得分:0)

你可以使用数组:

http://msdn.microsoft.com/en-us/library/vstudio/wak0wfyt.aspx

并使用

将值转换为Integer

Integer.TryParse

http://www.dotnetperls.com/array-vbnet

答案 3 :(得分:0)

尝试使用

Integer.Parse()

Integer.TryParse()

希望它有效。

答案 4 :(得分:0)

您无法将字符串“4,5,6”转换为单个整数值。

最好的办法是将选择更改为接受varchar值。

答案 5 :(得分:0)

在这种情况下,为了避免sql注入,只要你的ID(Cells(1).Text值)是整数,你应该从单元格中收集你的ID并在整数列表中输入安全,然后用逗号将它们连接起来最后一个字符串

我已相应调整了您的代码。

Protected Sub CheckBox1_CheckedChanged1(ByVal sender As Object, ByVal e As System.EventArgs)
    Dim Values As List(Of Integer)'your integer list of IDs 
    For Each row As GridViewRow In GridView1.Rows
        Dim cb As CheckBox = row.FindControl("checkbox1")
        If cb IsNot Nothing AndAlso cb.Checked Then
            Values.Add(Integer.convert(row.Cells(1).Text))'add the ID
        End If
    Next
    RwId.Text = String.Join(",", Values)'pull out the list into a comma delimited string eg "2,45,67,87"
    Session("SelctdIsuedBokNo") = RwId.Text