如何使用 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# 将图像保存在数据库中 [关闭]

禁用 WPF 窗口标题栏中的关闭按钮 (C#)

如何使用 c# 中的 select 语句产生的值? [关闭]

如何使用由 discord bot 生成的 .json 文件作为 c# 程序的数据库文件? [关闭]

如何在 C# 中添加(简单)跟踪? [关闭]

如何在 C# 中将 .docx 转换为 .pdf [关闭]