论证'提示'无法转换为' String' :AutoIncrement客户ID

时间:2015-11-01 03:24:55

标签: sql-server vb.net auto-increment

我有一个名为customer的表,其中有两列名为cust_ID和Temp_ID。 Temp_ID是一个整数。我想将一个连接的ID作为cust_ID。

我有以下函数来获取temp_id的最大值并将其递增1。

Private Function Tempo()

    Try
        con.Open()
        cmd.Connection = con
        cmd.CommandText = ("Select MAX(Temp_ID) From Customer")
        cmd.ExecuteNonQuery()
        Dim sqlRead As SqlDataReader = cmd.ExecuteReader()
        Temp1 = sqlRead.Item("Temp_ID")
        Temp1 = Temp1 + 1
    Catch ex As Exception
        MsgBox(ex)
    End Try
    Return True
End Function

我在vb.net客户界面中点击了客户ID文本框的事件。

 Private Sub txtBoxCustProfileID_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles txtBoxCustProfileID.Click
    Tempo()
    Dim x = Temp1
    Dim newID = String.Concat("C/", cmbNationality.Text, "/", Now.Year, "/", x)
    txtBoxCustProfileID.Text = newID
End Sub

当我运行此代码时,我在Tempo函数中收到以下错误消息" Argument' Prompt'无法转换为' String' "我真的不明白这意味着什么,我也是编程的新手。 请帮忙。

1 个答案:

答案 0 :(得分:0)

您目前没有从SQL查询中获取名为Temp_ID的列。

你需要改变这个:

cmd.CommandText = ("Select MAX(Temp_ID) From Customer")

对此:

cmd.CommandText = ("Select MAX(Temp_ID) AS Temp_ID From Customer")

也摆脱这条线:

cmd.ExecuteNonQuery()