如何使用 C# 链接数据库 [关闭]
Posted
技术标签:
【中文标题】如何使用 C# 链接数据库 [关闭]【英文标题】:How to link database with C# [closed] 【发布时间】:2014-02-18 20:31:45 【问题描述】:好的,我想基本上将我在 C# 中的 windows 窗体应用程序连接到我的数据库,我想要它做的是将数据库中的一个随机单词显示到我的窗体标签中。当我说显示一个随机词时,我的意思是从我的数据库表中的 20 个词中显示一个随机词。我想知道你会怎么做?我真的不想要答案,因为我想学习,但你能解释一下我该怎么做吗?
提前致谢:)
我想使用Access而不是.NET提供的框架来连接数据库
【问题讨论】:
您好,欢迎来到本站!我建议你看看这个 - ***.com/help/how-to-ask - 当你有一个特定的编程相关问题时再回来。 对 Linq-To-Entities(实体框架)、Linq-To-SQL 和 ADO.net 进行一些研究。这些都是 .net 中可用的框架,您可以将它们与 WinForms 应用程序一起用于访问 SQL 数据库。 在提出问题之前尝试使用Google
。例如我在简单搜索后得到这个:Beginners guide to accessing SQL Server through C#
@DavidKhaykin 谢谢,但如果使用访问而不是使用 .NET 提供的框架,我想链接
^^ 然后,将该单词设置为标签,您就完成了!在两个 cmets 中,这是一个完整的解决方案!
【参考方案1】:
首先,我建议先使用谷歌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 ID=@param"; // 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();
【讨论】:
每个单词1列,所以20行1列 @user3325176 试试我的编辑。它对你有用吗? 如果您将 rnd.Next 设置为列表的下限和上限,它将是动态的(因此您在添加第 21 个单词时无需重新编码,我向您保证,将会发生)我相信列表序数从 0 开始...... 我正在使用 OleDbConnection 顺便说一句,它也不识别“项目” 尝试 wordList.Add 代替【参考方案2】:这里有一个示例可以帮助您入门
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();
【讨论】:
我认为这不是索引列的好方法,因为表结构可能会改变。【参考方案3】:只需设置一个 SQLDataReader 并转换为一个列表...您只有一个字符串的一维列表。您将遍历结果并将它们添加到列表中。 (可能有一种更优雅的方式来做到这一点,但你只有 20 个字符串,而不是 20,000 个,所以我认为你不需要为此发疯)
这里有另一个SO question 可以帮助您入门...这个答案可能就是您所需要的。
您只需将您的 Datareader 设置为与 Access 相匹配(这样做有无数次点击),将其转换为列表,然后就可以使用了...
【讨论】:
以上是关于如何使用 C# 链接数据库 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 c# 中的 select 语句产生的值? [关闭]