【问题标题】:SqlCommand method result accessible for other methods其他方法可访问的 SqlCommand 方法结果
【发布时间】:2013-08-09 09:38:06
【问题描述】:

我有这个选择年份的方法,我需要这个结果可以用于其他方法。我试过这个:

    void choose_year()
        {
    SqlCommand chooseyear = new SqlCommand("SELECT year FROM firma WHERE id=1", spojeni);

            spojeni.Open();

            int? year= (int?)chooseyear .ExecuteScalar();

            spojeni.Close();
}

在我的公共部分类中放置 public int 我放置了“public int year;”

public partial class tours : Form
{


    SqlConnection spojeni = new SqlConnection(myConnection.DataSource.ConnectionString);


    public int year;

当我尝试从其他方法访问结果时:

void choose_tour()
    {


        DataTable dt = new DataTable();
        SqlDataAdapter SDA = new SqlDataAdapter("SELECT * FROM zajezd WHERE year="+year, spojeni);
        SDA.Fill(dt);
  }

它返回不同的值,例如 -1、1 或 0 我不确定,但是当我执行 choose_year() 时的值应该是 2013。当我将 SqlCommand for choose_year 放入我使用它的方法中时choose_tour 结果应该是 2013 年。我究竟做错了什么?非常感谢您的时间和建议。

我在做 public int year 的时候想;与导致 choose_year() 的名称相同,它将联合起来。我很久没有编程了,所以我很抱歉我的错误。

【问题讨论】:

    标签: c# sql sql-server winforms sqlcommand


    【解决方案1】:

    choose_year() 方法中你有

    int? year= (int?)chooseyear.ExecuteScalar();
    

    int? 之前的意思是你声明了另一个变量来保存年份的值你想要的代码可能就是这个

    Object mayBeNullYear = chooseyear.ExecuteScalar();
    if(mayBeNullYear!=null)
    this.year= (int)mayBeNullYear;
    

    【讨论】:

    • 非常感谢,我会在几分钟内接受答案,你帮了我很多。
    【解决方案2】:

    您的方法应该返回一年,例如

         int choose_year()
                {
            SqlCommand chooseyear = new SqlCommand("SELECT year FROM firma WHERE id=1", spojeni);
    
                    spojeni.Open();
    
                    int? year= (int?)chooseyear .ExecuteScalar();
    
                    spojeni.Close();
    return year;
        }
    

    然后你在那些你需要那一年的函数中调用它

    void choose_tour()
        {
    
            int year =   choose_year();
            DataTable dt = new DataTable();
            SqlDataAdapter SDA = new SqlDataAdapter("SELECT * FROM zajezd WHERE year="+year, spojeni);
            SDA.Fill(dt);
      }
    

    试试吧

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-20
      • 2019-03-18
      • 2014-09-05
      相关资源
      最近更新 更多