-1

i need to show only databases that contains "R2P" on dropdown list.

I' ve tried select on database list, contains, but without success.

    private void DbComboBox_DropDown(object sender, EventArgs e)
    {
        string connectionString;
        if (this.windowsAuthentication.Checked)
            connectionString = string.Format("Server={0}; Integrated Security=SSPI;", sqlServerComboBox.Text);
        else
            connectionString = string.Format("Server={0}; User ID={1}; Password={2};", sqlServerComboBox.Text, loginTexBox.Text, passwordTextBox.Text);

        using (SqlConnection sqlConnection = new SqlConnection(connectionString))
        {
            sqlConnection.Open();
            DataTable databaseList = sqlConnection.GetSchema("Databases");
            sqlConnection.Close();

            this.dbComboBox.Items.Clear();

            foreach (DataRow row in databaseList.Rows)
                this.dbComboBox.Items.Add(row["database_name"]);
        }
    }
Chris Catignani
  • 5,040
  • 16
  • 42
  • 49
  • 5
    `I' ve tried select on database list, contains, but without success.` Show us one such attempt. – mjwills Jun 14 '19 at 12:31
  • Possible duplicate of [Search of table names](https://stackoverflow.com/questions/13085655/search-of-table-names) – PaulG Jun 14 '19 at 14:10

1 Answers1

0

You can do this:

foreach (DataRow row in databaseList.Rows)
{
    if (row["database_name"].ToString().Contains("R2P"))
    {
        this.dbComboBox.Items.Add(row["database_name"]);
    }
}

also I'd suggest ditching the string.Format and go with string interpolation instead:

connectionString = $"Server={sqlServerComboBox.Text}; User ID={loginTexBox.Text}; Password={passwordTextBox.Text};";
crankedrelic
  • 463
  • 1
  • 5
  • 14
  • You could do that, but as the questioner asked - would be much better to do the select in sql correctly. – PaulG Jun 14 '19 at 14:10