SqlCommand方法结果可供其他方法访问
本文关键字:方法 其他 访问 结果 SqlCommand | 更新日期: 2023-09-27 18:27:12
我有一个选择年份的方法,我需要这个结果可以用于其他方法。我试过这个:
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 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,我不确定确切的值,但当我选择_year()时,结果应该是2013。当我将用于choose_year的SqlCommand放入用于choose_tour的方法中时,结果是2013。我做错了什么?非常感谢您的时间和建议。
我想,当我做公开的一年;使用与choose_year()中的结果相同的名称,它将合并。我很长时间没有编程了,所以我对自己的错误感到抱歉。
在choose_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);
}
试一下它应该能工作