-5

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

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;
    }
4

3 回答 3

2
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;
}
于 2013-08-20T10:15:49.810 回答
0

您不需要参数:

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();
}
于 2013-08-20T10:16:27.593 回答
0

由于您只返回一个,因此name使用ExecuteScalar并将 select 语句减少为只返回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;
}
于 2013-08-20T10:25:58.407 回答