![]() |
Select SQL Server database based on combo box selection
Hi,
I have a windows form with a "ComboBox" on it. The "ComboBox" has the words "Production" and "Development" in it. If the user selects "Production", I need my C# code to point to the Production database. If the user selects "Development", I need my C# code to point to the Development database. Can someone please tell me how to do this? Sorry, I'm still not sure what to do. I am new to C#, so it is confusing. Here is my code: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.IO; using System.Runtime.InteropServices; using Microsoft.Win32.SafeHandles; using System.Data.SqlClient; using System.Data.SqlTypes; namespace GEOINT { public partial class frmForm : Form { public frmForm() { InitializeComponent(); } //Insert using Filestream, file into SQL Server Table private void btnInsert_Click(object sender, EventArgs e) { OpenFileDialog openFileDlg = new OpenFileDialog(); openFileDlg.InitialDirectory = Directory.GetCurrentDirectory(); if (openFileDlg.ShowDialog() == DialogResult.OK) { FileInfo fi = new FileInfo(openFileDlg.FileName); FileStream fs = new FileStream(fi.FullName, FileMode.Open, FileAccess.Read); BinaryReader rdr = new BinaryReader(fs); byte[] fileData = rdr.ReadBytes((int)fs.Length); rdr.Close(); fs.Close(); string cs = @"server=JITC-PC\GEOINT;database=DEV_GEOINT;integrated security=SSPI"; using (SqlConnection con = new SqlConnection(cs)) { con.Open(); string sql = "INSERT INTO Filestream_Files (Row_Guid_Col_ID, fData, fName) VALUES (default, @fData, @fName)"; SqlCommand cmd = new SqlCommand(sql, con); cmd.Parameters.Add("@fData", SqlDbType.Image, fileData.Length).Value = fileData; cmd.Parameters.Add("@fName", SqlDbType.NVarChar).Value = fi.Name; cmd.ExecuteNonQuery(); con.Close(); } MessageBox.Show(fi.FullName, "Selected Document/Picture Inserted!", MessageBoxButtons.OK, MessageBoxIcon.Information); } } private void btnExit_Click(object sender, EventArgs e) { this.Close(); } private void frmForm_Load(object sender, EventArgs e) { } //Load LAST selected file to SQL Server table private void btnRetrieve_Click(object sender, EventArgs e) { string cs = @"server=JITC-PC\GEOINT;database=DEV_GEOINT;integrated security=SSPI"; using (SqlConnection con = new SqlConnection(cs)) { con.Open(); SqlTransaction txn = con.BeginTransaction(); string sql = "SELECT fData.PathName(), GET_FILESTREAM_TRANSACTION_CONTEXT(), fName fID FROM Filestream_Files WHERE fID = (SELECT MAX(fID)FROM Filestream_Files)"; SqlCommand cmd = new SqlCommand(sql, con, txn); SqlDataReader rdr = cmd.ExecuteReader(); while (rdr.Read()) { string filePath = rdr[0].ToString(); byte[] objContext = (byte[])rdr[1]; string fName = rdr[2].ToString(); SqlFileStream sfs = new SqlFileStream(filePath, objContext, System.IO.FileAccess.Read); byte[] buffer = new byte[(int)sfs.Length]; sfs.Read(buffer, 0, buffer.Length); sfs.Close(); //Files in the table have been written to a directory for viewing. //string filename = @"C:\Development\Geoint\Geoint\bin\debug; string filename = fName; System.IO.FileStream fs = new System.IO.FileStream(filename, FileMode.Create, FileAccess.Write, FileShare.Write); fs.Write(buffer, 0, buffer.Length); fs.Flush(); fs.Close(); } rdr.Close(); txn.Commit(); con.Close(); } } private void comboBox1_SelectedIndexChanged(object sender, EventArgs e) { } } } thanks, Sharon private void frmForm_Load(object sender, EventArgs e) { } //Load LAST selected file to SQL Server table private void btnRetrieve_Click(object sender, EventArgs e) { string cs = @"server=JITC-PC\GEOINT;database=DEV_GEOINT;integrated security=SSPI"; using (SqlConnection con = new SqlConnection(cs)) { con.Open(); SqlTransaction txn = con.BeginTransaction(); string sql = "SELECT fData.PathName(), GET_FILESTREAM_TRANSACTION_CONTEXT(), fName fID FROM Filestream_Files WHERE fID = (SELECT MAX(fID)FROM Filestream_Files)"; SqlCommand cmd = new SqlCommand(sql, con, txn); SqlDataReader rdr = cmd.ExecuteReader(); while (rdr.Read()) { string filePath = rdr[0].ToString(); byte[] objContext = (byte[])rdr[1]; string fName = rdr[2].ToString(); SqlFileStream sfs = new SqlFileStream(filePath, objContext, System.IO.FileAccess.Read); byte[] buffer = new byte[(int)sfs.Length]; sfs.Read(buffer, 0, buffer.Length); sfs.Close(); //Files in the table have been written to a directory for viewing. //string filename = @"C:\Development\Geoint\Geoint\bin\debug; string filename = fName; System.IO.FileStream fs = new System.IO.FileStream(filename, FileMode.Create, FileAccess.Write, FileShare.Write); fs.Write(buffer, 0, buffer.Length); fs.Flush(); fs.Close(); } rdr.Close(); txn.Commit(); con.Close(); } } private void comboBox1_SelectedIndexChanged(object sender, EventArgs e) { } } } |
Hi
Assuming the tables etc to remain the same in Production and Development database all you need to do is change the connection string based on the ComboBox You can handle that like string cs_dev = @"server=JITC-PC\GEOINT;database=DEV_GEOINT;integrated security=SSPI"; string cs_prod = @"server=JITC-PC\GEOINT;database=PROD_GEOINT;integrated security=SSPI"; private void comboBox1_SelectedIndexChanged(object sender, EventArgs e) { if comboBox1.text = 'Production' { cs = cs_prod } else { cs = cs_dev } } just put appropriate syntax and it should work. All you do here is based on the Selection you assign appropriate connection string and the rest should be find As your program matures you can have these connection string as part of config file and set them Cheers Shasur |
select database based on combo box selection
Thanks for your help and quick response. Here is the code I used to fix my problems:
Code:
string cs = ""; |
| All times are GMT -4. The time now is 10:02 AM. |
Powered by vBulletin® Version 3.7.0
Copyright ©2000 - 2013, Jelsoft Enterprises Ltd.
© 2013 John Wiley & Sons, Inc.