我是C#的新手,我知道這個問題已經被廣泛地討論過了,但我無論如何都被抓住了。我無法弄清楚爲什麼我的解析不起作用。我從另一個類訪問的窗體上有一個文本框控件,但我不斷收到上面提到的錯誤,不知道爲什麼。無法解析相關的int - 「不能隱式地將類型字符串轉換爲int」
這裏是我的代碼:
public partial class Edit : XtraForm
{
public int _PatientID;
public string _FirstName;
public string _LastName;
public string _Address;
public string _City;
public string _State;
public string _ZipCode;
public string _Phone;
public Edit(int _PatientID, string _FirstName, string _LastName,
string _Address, string _City, string _State,
string _ZipCode, string _Phone)
{
InitializeComponent();
// This is the line I am talking about
_PatientID = Convert.ToInt32(txtPatientID.Text);
_FirstName = txtFirstName.Text;
_LastName = txtLastName.Text;
_Address = txtAddress.Text;
_City = txtCity.Text;
_State = txtState.Text;
_ZipCode = txtZipCode.Text;
_Phone = txtPhone.Text;
}
public class PatientService
{
Edit ed = new Edit(_PatientID, _FirstName, _LastName, _Address,
_City, _State, _ZipCode, _Phone);
SACommand cmd = new SACommand
(@"INSERT INTO patient(patient_id, first_name, last_name,
address, city, state, zipcode, phone)
VALUES ('"
+ _PatientID + "','"
+ _FirstName + "','"
+ _LastName + "','"
+ _Address + "','"
+ _City + "','"
+ _State + "','"
+ _ZipCode + "','"
+ _Phone + "');");
cmd.Connection = conn;
cmd.ExecuteNonQuery();
MessageBox.Show("A new patient has been inserted");
conn.Close();
}
我真的很感激任何幫助。
我懷疑你得到的錯誤,因爲文本框中的文本不能轉換爲數字。該文本框中的值是多少? –
此外,將值直接插入到sql語句中並不是一種好的做法,這會讓您打開SQL注入攻擊。你應該使用參數 – codemonkeh
在你的構造函數中,你改變本地參數而不是類字段。 –