Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/334.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# SqlCommand方法结果可用于其他方法_C#_Sql_Sql Server_Winforms_Sqlcommand - Fatal编程技术网

C# SqlCommand方法结果可用于其他方法

C# SqlCommand方法结果可用于其他方法,c#,sql,sql-server,winforms,sqlcommand,C#,Sql,Sql Server,Winforms,Sqlcommand,我有一个选择年份的方法,我需要这个结果对其他方法是可接受的。我试过这个: void choose_year() { SqlCommand chooseyear = new SqlCommand("SELECT year FROM firma WHERE id=1", spojeni); spojeni.Open(); int? year= (int?)chooseyear .ExecuteScalar();

我有一个选择年份的方法,我需要这个结果对其他方法是可接受的。我试过这个:

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

            spojeni.Open();

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

            spojeni.Close();
}
在我的公共部分课上,我把“公共整年”列为“公共整年”

当我尝试从其他方法访问结果时,如下所示:

void choose_tour()
    {


        DataTable dt = new DataTable();
        SqlDataAdapter SDA = new SqlDataAdapter("SELECT * FROM zajezd WHERE year="+year, spojeni);
        SDA.Fill(dt);
  }
它返回不同的值,如-1、1或0。我不确定具体值,但当我选择_year()时,结果应该是2013。当我将choose_year的SqlCommand放入我用于choose_tour的方法中时,结果应该是2013年。我做错了什么?非常感谢您的时间和建议

我想,当我在这一年做公众活动时;使用与choose_year()中的结果相同的名称,它将合并。我很长时间没有编程了,所以我为我的错误感到抱歉

中选择您拥有的\u year()
方法

int? year= (int?)chooseyear.ExecuteScalar();
前面的
int?
表示您正在声明另一个变量来保存年份值。您想要的代码可能是

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

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

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

试试看,它会有用的

非常感谢你,我会在几分钟内接受你的回答,你帮了我很多。
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);
  }