簡體   English   中英

如何在C#中向SQL添加if和else

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM