2012-04-17 3 views
0
OleDbConnection conn = new OleDbConnection(connectionString); 
conn.Open(); 
OleDbCommand command = new OleDbCommand(); 
command.Connection = conn; 
command.CommandText = "INSERT INTO myTbl ([username],[password],[firstname],[lastname],[mi],[age],[place],[contact])VALUES (?,?,?,?,?,?,?,?)"; 
command.Parameters.Add("@user", OleDbType.VarChar).Value = txtUsername.Text; 
command.Parameters.Add("@psw", OleDbType.VarChar).Value = txtPassword.Text; 
command.Parameters.Add("@nm", OleDbType.VarChar).Value = txtName.Text; 
command.Parameters.Add("@Lname", OleDbType.VarChar).Value = txtLastName.Text; 
command.Parameters.Add("@mIni", OleDbType.VarChar).Value = txtMI.Text; 
command.Parameters.Add("@ag", OleDbType.Integer).Value = Convert.ToInt32(txtAge.Text); 
command.Parameters.Add("@plc", OleDbType.VarChar).Value = txtPlace.Text; 
command.Parameters.Add("@cntct", OleDbType.Integer).Value = Convert.ToInt32(txtContact.Text); ; 
command.ExecuteNonQuery(); 
lblInfo.Visible = true; 
lblInfo.Text = "Success"; 
conn.Close(); 

이렇게하면 오류 Input string was not in a correct format이 표시됩니다. 제발 도와주세요.C#에서 ms 액세스에 숫자 레코드 삽입 asp.net

+0

이 코드는 오류가 발생합니다. 입력 문자열이 올바른 형식이 아닙니다. 그러니 제발 도와주세요. 미리 감사드립니다 – user1337815

+0

어떤 줄에서 오류가 발생했는지 디버거를 통해 실행 중입니까? –

+0

또한'Convert.ToInt32'의 대안으로'Int32.TryParse' (http://msdn.microsoft.com/en-us/library/system.int32.tryparse.aspx)를보십시오. –

답변

1

코드 및 오류를 기반으로 TextBox 컨트롤의 텍스트 (txtContact 또는 txtAge) 중 하나가 유효한 정수 (정수) 값이 아닙니다. 입력의 유효성을 확인하십시오. RequiredFieldValidator와 RangeValidator 또는 RegularExpressionValidator를 사용하여 Textbox가 비어 있지 않고 유효한 텍스트를 포함하는지 확인해야합니다.

Convert.ToInt32 대신 System.Int32.TryParse()을 사용하는 것도 좋습니다.

1

정수가 아닌 값을 정수 값으로 변환하는 경우 txtAge.TexttxtContact.Text과 그 값을 확인하십시오. 정수 값으로 변환되는 값을 포함해야합니다.