2013-01-22 146 views
0

我尝试检查哪些数据在DataGridViewComboBoxCell检查选择了哪个项目?

Dim status As Double 
    For x As Integer = 0 To ATCGRID.Rows.Count - 1 
     If ATCGRID.Rows(x).Cells(2).Value = "Full" Then 
      status = 1 
     ElseIf ATCGRID.Rows(x).Cells(2).Value = "Empty" Then 
      status = 0 
     ElseIf ATCGRID.Rows(x).Cells(2).Value = "Half" Then 
      status = 0.5 
     End If 
     MessageBox.Show(status) 
    Next x 

选择,但其得到错误

Conversion from string "Full" to type "Double" is not valid. 

我该如何解决这个问题?

+0

试加'的ToString()''→MessageBox.Show(status.ToString())',或者使用'。 EditedFormattedValue.ToString()'→'ATCGRID.Rows(x).Cells(2).EditedFormattedValue.ToString()==“Full”' – spajce

回答

0

尝试解析您的数据库类型,

Dim strSQL As String = "INSERT INTO ATTENDANCE(EMP_ID,EMP_NAME,AT_DATE,AT_STATUS,AT_REMARK)VALUES(@EMP_ID,@EMP_NAME,@AT_DATE,@AT_STATUS,@AT_REMARK)" 
     query = New SqlCommand(strSQL, Conn) 
     query.Parameters.Add("@EMP_ID",SqlDbType.Decimal) 
     query.Parameters.Add("@EMP_ID").Value=id 
     query.Parameters.Add("@EMP_NAME",SqlDbType.Varchar,100)' Parse your length 
     query.Parameters.Add("@EMP_NAME").Value=name 
     query.Parameters.Add("@AT_DATE",SqlDbType.Date) 
     query.Parameters.Add("@AT_DATE").Value=atdate 
     query.Parameters.Add("@AT_STATUS",SqlDbType.Decimal) 
     query.Parameters.Add("@AT_STATUS").Value=status 
     query.Parameters.Add("@AT_REMARK",SqlDbType.Varchar,50) 
     query.Parameters.Add("@AT_REMARK").Value=name 
0

Value在单元格中是一个数字,所以不能用这种方式进行比较。试试这个:

If ATCGRID.Rows(x).Cells(2).Value.ToString() = "FULL" Then 
+0

no ....这也是同一个........ – Thanzeem

相关问题