函数调用和返回值的问题

ac_44 2009-12-17 11:56:19
比如这一段代码:
SqlConnection conn = new SqlConnection();
conn.ConnectionString = "data source =.;initial catalog =a; user id = sa;password = ";
conn.Open

DataSet ds = new DataSet();
SqlDataAdapter da = new SqlDataAdapter("select 商品代码,商品名称,规格,类别,生产厂家,计量单位,默认仓库 from 商品信息 where 商品名称 like '%" + textBox1.Text + "%'", conn);
da.Fill(ds, "商品类别");
dataGridView1.DataSource = ds.Tables[0];
conn.Close();
我想把
SqlConnection conn = new SqlConnection();
conn.ConnectionString = "data source =.;initial catalog =a; user id = sa;password = ";
conn.Open
这3句用一个函数代替,
public class a
{
public void com()
{
SqlConnection conn = new SqlConnection();
conn.ConnectionString = "data source =.;initial catalog =a; user id = sa;password = ";
conn.Open();
}
}
那么原来的语句我改为
a kk = new a();
kk.com();

DataSet ds = new DataSet();
SqlDataAdapter da = new SqlDataAdapter("select 商品代码,商品名称,规格,类别,生产厂家,计量单位,默认仓库 from 商品信息 where 商品名称 like '%" + textBox1.Text + "%'", conn);
da.Fill(ds, "商品类别");
dataGridView1.DataSource = ds.Tables[0];
conn.Close();
但是下面语句里的conn应该怎么变更呢?
...全文
128 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
lunchx 2009-12-17
  • 打赏
  • 举报
回复
路过顶下
hhc123 2009-12-17
  • 打赏
  • 举报
回复

public class a
{
string constring=null;
public a()
{
constring= "data source =.;initial catalog =a; user id = sa;password = ";
}
public DataSet ReturnDataSet(string sql)
{
SqlConnection conn= new SqlConnection(constring);
conn.Open();
DataSet ds = new DataSet();
SqlDataAdapter da = new SqlDataAdapter(sql, conn);
da.Fill(ds, "商品类别");
conn.Close();
return ds;

}



//调用时
a con=new a();
dataGridView1.DataSource =ReturnDataSet(string sql).Tables[0];

hhc123 2009-12-17
  • 打赏
  • 举报
回复
public class a 
{
string constring=null;
public a()
{
constring= "data source =.;initial catalog =a; user id = sa;password = ";
}
public DataSet(string sql)
{
SqlConnection conn= new SqlConnection(constring);
conn.Open();
DataSet ds = new DataSet();
SqlDataAdapter da = new SqlDataAdapter(sql, conn);
da.Fill(ds, "商品类别");
conn.Close();
return ds;

}
public .....(string sql)
{

}
.
.
.
.
.
.
.
.
}

这样搞比较好看点
wuhan_dotnet 2009-12-17
  • 打赏
  • 举报
回复
路过顶下
saisky 2009-12-17
  • 打赏
  • 举报
回复
上面的都回答了
路过下吧
hhc123 2009-12-17
  • 打赏
  • 举报
回复

public class a
{ SqlConnection conn;
public void com()
{
conn = new SqlConnection();
conn.ConnectionString = "data source =.;initial catalog =a; user id = sa;password = ";
conn.Open();
}
public DataSet(string sql)
{
DataSet ds = new DataSet();
SqlDataAdapter da = new SqlDataAdapter(sql, conn);
da.Fill(ds, "商品类别");
return ds;

}
}

_autotest 2009-12-17
  • 打赏
  • 举报
回复
要封装就封装完全

public class a
{
SqlConnection conn ;
public void com()
{
conn = new SqlConnection();
conn.ConnectionString = "data source =.;initial catalog =a; user id = sa;password = ";

}
public void Open()
{
conn.Open();
}
public void Close()
{
conn.Close();
}
}
a kk = new a();
kk.com();
kk.Open();
kk.Close();
jishengzu 2009-12-17
  • 打赏
  • 举报
回复
 
//SqlConnection conn = new SqlConnection();
// conn.ConnectionString = "data source =.;initial catalog =a; user id = sa;password = ";
// conn.Open();
a kk = new a();
SqlConnection conn = kk.Conn;
conn.Open();
DataSet ds = new DataSet();
SqlDataAdapter da = new SqlDataAdapter("select 商品代码,商品名称,规格,类别,生产厂家,计量单位,默认仓库 from 商品信息 where 商品名称 like '%" + textBox1.Text + "%'", conn);
da.Fill(ds, "商品类别");
dataGridView1.DataSource = ds.Tables[0];
conn.Close();



public class a
{
public SqlConnection Conn { get; set; }
public a()
{
Conn = new SqlConnection();
Conn.ConnectionString = "data source =.;initial catalog =a; user id = sa;password = ";
}
}
ac_44 2009-12-17
  • 打赏
  • 举报
回复
我新手表达不好请见谅
arit11 2009-12-17
  • 打赏
  • 举报
回复
路过,学习
_autotest 2009-12-17
  • 打赏
  • 举报
回复
未将对象引用设置到对象的实例 就是conn没有new出来。具体问题还是跟踪下吧
jk52018859 2009-12-17
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 hhc123 的回复:]
C# codepublicclass a
{string constring=null;public a()
{
constring="data source =.;initial catalog =a; user id = sa;password =";
}public DataSet(string sql)
{
SqlConnection conn=new SqlConnection(constring);
conn.Open();
DataSet ds=new DataSet();
SqlDataAdapter da=new SqlDataAdapter(sql, conn);
da.Fill(ds,"商品类别");
conn.Close();return ds;

}public .....(string sql)
{

}
.
.
.
.
.
.
.
.
}
这样搞比较好看点

[/Quote]


OK,就这个了。。。
ac_44 2009-12-17
  • 打赏
  • 举报
回复
上面给出的方法都试了,2L,3L的都在【 conn.Open();】这里提示“未将对象引用设置到对象的实例 ”,查看时发现 conn 是NULL的,原因不明,8L的【dataGridView1.DataSource =ReturnDataSet(string sql).Tables[0];
】改为【dataGridView1.DataSource =con.ReturnDataSet(string sql).Tables[0];】后可以正常查询结果。还请问,未将对象引用设置到对象的实例 的原因是什么?
cykevin 2009-12-17
  • 打赏
  • 举报
回复
共用的东西放到高层次变量里去
tianliang1 2009-12-17
  • 打赏
  • 举报
回复
lz应该知道怎么做了啊,就是先把段代码封装为一个类,然后再在你要用的地方实例化一个对象跳用他的成员就ok了,现在的程序中,如果很多时候都要对数据库进行操作的话,很多人愿意按你想的方式处理。。。代码重复性降低了。。。

111,121

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧