【问题标题】:class that gets a value from database [closed]从数据库中获取值的类[关闭]
【发布时间】:2013-08-20 10:12:54
【问题描述】:

我将如何创建一个从数据库中获取值然后将其显示到文本框的类?

public static class myMethods
{
        public static void getName(string name){    
        ConnectionStringSettings myConnectionString = ConfigurationManager.ConnectionStrings["LibrarySystem.Properties.Settings.LibraryConnectionString"];
        using (SqlConnection myDatabaseConnection = new SqlConnection(myConnectionString.ConnectionString))
        {
            myDatabaseConnection.Open();
            using (SqlCommand mySqlCommand = new SqlCommand("select Top 1 * from Setting Order By SettingID Desc", myDatabaseConnection))
            using (SqlDataReader sqlreader = mySqlCommand.ExecuteReader())
            {
                if (sqlreader.Read())
                {
                    name = sqlreader["Name"].ToString();
                }
            }
        }
}
}

Form:
    private void Button1_Click(object sender, EventArgs e)
    {
        string name = "";
        myMethods.getName(name);
        textBox1.Text = name;
    }

【问题讨论】:

    标签: c# winforms class ado.net


    【解决方案1】:
    public static class myMethods
    {
        public static string getName(){  
          string name = "";  
          ConnectionStringSettings myConnectionString = ConfigurationManager.ConnectionStrings["LibrarySystem.Properties.Settings.LibraryConnectionString"];
          using (SqlConnection myDatabaseConnection = new SqlConnection(myConnectionString.ConnectionString))
          {
            myDatabaseConnection.Open();
            using (SqlCommand mySqlCommand = new SqlCommand("select Top 1 * from Setting Order By SettingID Desc", myDatabaseConnection))
            using (SqlDataReader sqlreader = mySqlCommand.ExecuteReader())
            {
                if (sqlreader.Read())
                {
                    name = sqlreader["Name"].ToString();
                }
            }
          }
          return name;
        }
    }
    
    Form:
    private void Button1_Click(object sender, EventArgs e)
    {     
        textBox1.Text = myMethods.getName();
    }
    

    或者这个:

    public static class myMethods
    {
        public static void getName(out string name){  
          //.....
        }
    }
    private void Button1_Click(object sender, EventArgs e)
    {
        string name;
        myMethods.getName(out name);
        textBox1.Text = name;
    }
    

    【讨论】:

      【解决方案2】:

      你不需要参数:

      public static string getName()
      {
          string result = "";    
          ConnectionStringSettings myConnectionString = ConfigurationManager.ConnectionStrings["LibrarySystem.Properties.Settings.LibraryConnectionString"];
          using (SqlConnection myDatabaseConnection = new SqlConnection(myConnectionString.ConnectionString))
          {
              myDatabaseConnection.Open();
              using (SqlCommand mySqlCommand = new SqlCommand("select Top 1 * from Setting Order By SettingID Desc", myDatabaseConnection))
              using (SqlDataReader sqlreader = mySqlCommand.ExecuteReader())
              {
                  if (sqlreader.Read())
                  {
                      result = sqlreader["Name"].ToString();
                  }
              }
          }
          return result;
      }
      
      
      
      private void Button1_Click(object sender, EventArgs e)
      {
          textBox1.Text = myMethods.getName();
      }
      

      【讨论】:

        【解决方案3】:

        由于您只返回一个单个name,请使用ExecuteScalar并将选择语句减少为仅返回name

        public static class myMethods
        {
            public static string getName()
            {
                string name = "";    
                ConnectionStringSettings myConnectionString = ConfigurationManager.ConnectionStrings["LibrarySystem.Properties.Settings.LibraryConnectionString"];
                using (SqlConnection myDatabaseConnection = new SqlConnection(myConnectionString.ConnectionString))
                {
                    myDatabaseConnection.Open();
                    using (SqlCommand mySqlCommand = new SqlCommand("select Top 1 Name from Setting Order By SettingID Desc", myDatabaseConnection))
                    var NameObj = mySqlCommand.ExecuteScalar()
                    if NameObj != null then
                      name = NameObj.ToString()
                }
                return name;
            }
        }        
        

        表格

        private void Button1_Click(object sender, EventArgs e)
        {
            string name = "";
            name = myMethods.getName();
            textBox1.Text = name;
        }
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2014-06-10
          • 1970-01-01
          • 1970-01-01
          • 2023-04-05
          • 2014-06-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多