私はVisual Studio 2012を使用してC#を自己学習し、接続の問題を抱えています。基本的には、combobox
を使用して、ユーザーの選択に基づいてデータベースに接続したいと考えています。例えばC#を使用してコンボボックス 'selected'アイテムを使用して接続文字列を設定します
:ユーザがTEST1
を選択すると、これはtest1
データベースを選択し、TEST2
私はつなぎ合わせたtest2
database..etcコードを介してSQLスクリプトからの結果を表示するボタンを使用できるようになります
messagebox
。現時点では、メッセージボックスには何も表示されないので、これを動作させることはできません。
私はMainConnection()
をコメントアウトしました。これは接続が機能しているかどうかを確認するためのテストでした。
誰かが私を正しい方向に向けることができたら大変感謝します。
以下のC#コードを参照してください:それはあなたのSQLでエラーを投げているので
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Data.SqlClient;
namespace TestDB
{
public partial class Form1 : Form
{
class ComboItemExample
{
public string DisplayString { get; set; }
public string ConnectionString { get; set; }
public override string ToString() { return DisplayString; }
}
private string currentConnection = "Data Source= np-2 ;Initial Catalog= TESTDB Integrated Security=true";
public Form1()
{
InitializeComponent();
var firstConnection = new ComboItemExample { DisplayString = "Data Source= np-2 ;Initial Catalog= TESTDB1 Integrated Security=true" };
comboBox1.Items.Add("TEST1");
var secondConnection = new ComboItemExample { DisplayString = "Data Source= np-2 ;Initial Catalog= TESTDB2 Integrated Security=true" };
comboBox1.Items.Add("TEST2");
}
public void MainConnection()
{
//Make connection to np-2 TESTDB
//string str = "Data Source= np-hums12 ;Initial Catalog= TESTDB;"
//+ "Integrated Security=true";
// ReadOrderData(str);
}
public static void ReadOrderData(string currentConnection)
{
// Run SQL script
string queryString = "SELECT *;";
using (SqlConnection connection = new SqlConnection(currentConnection))
{
SqlCommand command = new SqlCommand(queryString, connection);
connection.Open();
SqlDataReader reader = command.ExecuteReader();
}
using (SqlConnection connection = new SqlConnection(ConnectionString))
{
SqlCommand command = new SqlCommand(queryString, connection);
connection.Open();
SqlDataReader reader = command.ExecuteReader();
// call read before accessing data.
while (reader.Read())
{
//display script in message box
MessageBox.Show(reader.GetValue(1).ToString());
}
// close when finished reading.
reader.Close();
}
}
private void CloseUI_Click(object sender, EventArgs e)
{
Application.Exit();
}
private void ShowData_Click(object sender, EventArgs e)
{
MainConnection();
}
private void comboBox1_SelectedIndexChanged_1(object sender, EventArgs e)
{
if (comboBox1.SelectedIndex <= 0) return;
var newConnection = ((ComboItemExample)comboBox1.Items[comboBox1.SelectedIndex]).ConnectionString;
// use "newConnection" as connection string.
currentConnection = newConnection;
using (var connection = new SqlConnection(currentConnection))
{
}
}
}
}
非常に単純な - 文字列queryString = "SELECT *;"; "はテーブルが指定されていないのでエラーをスローします。 – Takarii
AFAIK Select *は有効なSQLコマンドではありません。 "Select * FROM [あなたのテーブル名]"を試してください – Jaxi