2014-02-18 55 views
1

好吧,我想基本上連接我的Windows窗體應用程序在C#到我的數據庫,我想要它做的是從數據庫顯示隨機單詞到我的表單的標籤。當我說顯示一個隨機單詞時,我的意思是從我的數據庫表中的20個單詞中顯示一個隨機單詞。我想知道你會如何做到這一點?我真的不想要答案,因爲我想學習,但你能解釋我將如何做到這一點?如何鏈接數據庫與C#

感謝提前:)

我想使用訪問,而不是由.NET提供的框架連接數據庫

+1

您好,歡迎到現場!我建議你看看這個 - http://stackoverflow.com/help/how-to-ask - 當你有一個特定的與編程相關的問題時回頭看看。 – admdrew

+0

對Linq-To-Entities(實體框架),Linq-To-SQL和ADO.net做一些研究。這些都是.NET中可用的框架,您可以使用WinForms應用程序訪問SQL數據庫。 –

+0

嘗試使用'Google'before問一個問題。例如,我經過簡單的搜索就得到了這個:[初學者指導通過C#訪問SQL Server](http://www.codeproject.com/Articles/4416/Beginners-guide -to-access-SQL-Server-through-C) –

回答

3

首先,我想建議使用谷歌第一Beginners guide to connect SQL with C#,那麼我會像你一樣發佈有關一個主題的問題 - 將SQL與C#連接起來。選擇隨機詞的部分應該是另一個獨立問題。

無論如何,我希望這會對你有用,但請記住,我們不是在這裏沒有任何編碼工作和你的代碼的代碼。

我的代碼:

List<string> wordList = new List<string>(); 
string connection = "YourConnectionString"; 
OleDbConnection con = new OleDbConnection(connection); 
string query = "SELECT * FROM yourTable WHERE [email protected]"; // add as many conditions as you need 
OleDbCommand comm = new OleDbCommand(query, con); 
comm.Parameters.AddWithValue("@param", textBox1.Text); //example of parameter 
con.Open(); 
OleDbDataReader rdr = comm.ExecuteReader(); 

while (rdr.Read()) //this will loop through all rows with given conditions. 
{ 

    wordList.Add(rdr.GetString(rdr.GetOrdinal("YourSQLColumn")).Trim()); 

} 

con.Close(); 
Random rnd = new Random(); 
int randomint = rnd.Next(1, 20); // generates a random number between 1 and 20 
label1.Text = wordList[randomint].ToString(); 
+0

每個單詞是在1列,所以20行和1列 – user3325176

+0

@ user3325176嘗試我的編輯。對你起作用嗎? – Marek

+0

如果將rnd.Next設置爲列表的下限和上限,它將是動態的(因此,當您添加第21個單詞時,您不需要重新編碼,我向你保證將會發生)相信列表序號開始在0 ... – Tim

1

下面是一個樣本,讓你開始

public static void Main() 
{ 
    string connectionString = "data source=.\\SQLEXPRESS;Integrated Security=SSPI;database=InsertDatabaseNameHere; connection timeout=30"; 
    SqlConnection connection = new SqlConnection(connectionString); 

    connection.Open(); 
    SqlCommand command = new SqlCommand("select ColumnName from TableName", connection); 
    SqlDataReader reader = command.ExecuteReader(); 

    while (reader.Read()) 
    { 
     Console.WriteLine(reader.GetValue(0)); 
    } 
    connection.Close(); 

} 
+0

我認爲這不是索引列的好方法,因爲表結構可能會改變。 – Marek

0

剛剛成立了一個SqlDataReader,並轉換到一個列表...你只需要一個一維列表字符串。您將循環瀏覽結果並將其添加到列表中。 (有可能是一個更優雅的方式來做到這一點,但你只有20個字符串,而不是20,000,所以我不認爲你需要爲此瘋狂)

這是另一個SO question讓你開始..這個答案可能是你需要的。

你只需設置你的DataReader對抗接入(有一個bazillion擊中這樣做),將其轉換爲一個列表,和您去...