[英]How to add a if and else to SQL in c#
我仍然是C#的初學者,而且我使用的是Visual Studio2015。我有一個問題,因為combobox只接受索引。 我的組合框的值為“ admin,employee”,因此,如果用戶選擇1索引(員工),則應將其作為“員工”存儲在sql位置表中,但現在它僅存儲0和1。表的數據類型為nvarchar(20)*
private void aBtnSave_Click(object sender, EventArgs e)
{
string conString = @"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=C:\Do not delete\insertUserExample.mdf;Integrated Security=True;Connect Timeout=30";
string query = "INSERT INTO userData (firstName,lastName,userName,password,contactNo,position) values('" + this.aTxtFirstName.Text + "', '" + this.aTxtLastName.Text + "', '" + this.aTxtUserName.Text + "', '" + this.aTxtPassword.Text + "', '" + this.aTxtContact.Text + "', '" + this.aUserPosition.SelectedIndex + "');";
SqlConnection sqlcon = new SqlConnection(conString);
SqlCommand sqlcom = new SqlCommand(query, sqlcon);
SqlDataReader sqlReader;
try {
sqlcon.Open();
sqlReader = sqlcom.ExecuteReader();
MessageBox.Show("User is Saved!");
while (sqlReader.Read()) {
}
aTxtFirstName.Clear();
aTxtLastName.Clear();
aTxtUserName.Clear();
aTxtPassword.Clear();
aTxtContact.Clear();
} catch (Exception ex) {
MessageBox.Show(ex.Message);
}
您可以添加變量和條件以將組合框選擇的索引更改為字符串,如下所示:
var userTitleString = this.aUserPosition.SelectedIndex == 1 ? "employee" : "admin";
string query = "INSERT INTO userData (firstName,lastName,userName,password,contactNo,position) values('" + this.aTxtFirstName.Text + "', '" + this.aTxtLastName.Text + "', '" + this.aTxtUserName.Text + "', '" + this.aTxtPassword.Text + "', '" + this.aTxtContact.Text + "', '" + userTitleString + "');";
或者,您可以在向其中添加項目時將數據綁定到comboBox:
ComboBoxItem comboItem = new ComboBoxItem();
item2.Text = "Admin";
item2.Value = "Admin";
ComboBoxItem comboItem2 = new ComboBoxItem();
item2.Text = "Employee";
item2.Value = "Employee";
List<ComboBoxItem> items = new List<ComboBoxItem> { comboItem, comboItem2 };
this.yourComboBox.DisplayMember = "Text";
this.yourComboBox.ValueMember = "Value";
this.yourComboBox.DataSource = items;
private void aBtnSave_Click(object sender, EventArgs e)
{
ComboboxItem selectedString = (ComboboxItem)yourComboBox.SelectedItem;
var userPosition= selectedString.Value;
string conString = @"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=C:\Do not delete\insertUserExample.mdf;Integrated Security=True;Connect Timeout=30";
string query = "INSERT INTO userData (firstName,lastName,userName,password,contactNo,position) values('" + this.aTxtFirstName.Text + "', '" + this.aTxtLastName.Text + "', '" + this.aTxtUserName.Text + "', '" + this.aTxtPassword.Text + "', '" + this.aTxtContact.Text + "', '" + userPosition + "');";
SqlConnection sqlcon = new SqlConnection(conString);
SqlCommand sqlcom = new SqlCommand(query, sqlcon);
SqlDataReader sqlReader;
try {
sqlcon.Open();
sqlReader = sqlcom.ExecuteReader();
MessageBox.Show("User is Saved!");
while (sqlReader.Read()) {
}
aTxtFirstName.Clear();
aTxtLastName.Clear();
aTxtUserName.Clear();
aTxtPassword.Clear();
aTxtContact.Clear();
} catch (Exception ex) {
MessageBox.Show(ex.Message);
}
class ComboBoxItem
{
public string Text { get; set; }
public string Value { get; set; }
}
您可以使用以下代碼。
aUserPosition.SelectedItem.Text ,您將獲得選定的文本,即“ Employee”或“ Admin”。
string query = "INSERT INTO userData (firstName,lastName,userName,password,contactNo,position) values('" + this.aTxtFirstName.Text + "', '" + this.aTxtLastName.Text + "', '" + this.aTxtUserName.Text + "', '" + this.aTxtPassword.Text + "', '" + this.aTxtContact.Text + "', '" + this.aUserPosition.SelectedItem.Text + "');";
如果我沒有誤會您的意思,您想在組合框而不是索引中獲取文本。 您可以嘗試下面的代碼嗎?
aUserPosition.GetItemText(this.aUserPosition.SelectedItem)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.