【问题标题】:How to create database apps?如何创建数据库应用程序?
【发布时间】:2015-07-30 18:49:24
【问题描述】:

如何创建数据库应用程序? 我有一个文本框、按钮和标签。用户输入一个值 = Luke,程序执行 Select Address From Customers where Name='Luke'。它在标签中显示地址。

我知道这是一个非常愚蠢的问题,但我到处寻找,我所能找到的只是如何显示所有列而不是一件事。

任何关于使用 c# 的数据库的建议也会很有帮助。我正在使用 Sql server Express 2012 和 Visual Studio

代码:

private void button1_Click(object sender, EventArgs e)
        {
            SelectData(textBox1.Text);
        }
        private void SelectData(string selectConnection)
        {
            string connectionStr =
                @"Data Source=.\SQLEXPRESS;"+
                @"AttachDbFilename=C:\SQL Server 2000 Sample Databases\NORTHWND.MDF;"+
                @"Integrated Security=True;Connect Timeout=30;User Instance=True";
            SqlConnection connection = new SqlConnection(connectionStr);
            SqlCommand command = connection.CreateCommand();
            command.CommandText = "SELECT Address FROM Customers"+
                " WHERE CustomerName = '" + textBox1.Text + "'";

【问题讨论】:

  • 帮自己一个忙:不要像这样混合 UI 和数据库。将它们分开,以便您可以独立测试它们。您不需要完善您的查询吗?
  • 我认为你应该在寻求帮助之前先用 google C# getting started with sql tutorial...

标签: c# database visual-studio sql-server-2012


【解决方案1】:

对 C# 和数据库的建议是,不要将字符串命令放在应用程序中。 通往成功的道路有很多,但有些可能会导致不安全的数据库查询。

我个人不使用实体框架(Microsoft 推荐)等,但我想它们可能对您的工作有所帮助,因此您应该看看这个。

尝试将 SQL 逻辑与 C# 部分分开,以便如果您的应用程序增长,并且您可以让数据库管理员不必了解 c# ;)

【讨论】:

    【解决方案2】:

    您已经走在了完美的轨道上,现在继续您的代码以显示您可以这样编写的地址:

    label_address.text=command.executescalar();//if you have one row of address
    

    你也可以写

    datareader dr =cmd.executereader()
    while(dr.read())
    {
    label_address+=dr(0).tostring();+","//addressline1
    label_address+=dr(1).tostring();//addressline2
    }
    

    希望对你有帮助

    【讨论】:

      猜你喜欢
      • 2014-06-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-03
      • 2018-10-16
      相关资源
      最近更新 更多