protected DataBase DB;//这是一个数据库操作封装类
protected SqlConnection Conn;
protected DataSet DS;
protected SqlDataAdapter DA;
private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
string StrSql;
if (!IsPostBack)
{
DB = new DataBase();
DS = new DataSet();
StrSql = "select * from Prjct where Pass = 'Pass'";
DS = DB.RunProc(StrSql,DS,"Prjct");
DGPrjct.DataSource = DS.Tables["Prjct"].DefaultView;
DGPrjct.DataBind();
TextBox1.Text = DS.Tables["Prjct"].DefaultView[1]["PrjctName"].ToString();//这一行在这里是正确的
}
}
private void Button5_Click(object sender, System.EventArgs e)
{
TextBox1.Text = DS.Tables["Prjct"].DefaultView[1]["PrjctName"].ToString();//为什么在这里就不正确了:出错信息是:未将对象引用设置到对象的实例。 我的DS是全局变量啊,在Page_Load中已经实例化了啊}上边就是我的问题。 我的最终目的就是:点击datagrid,textbox可以获取值,获取的方式通过‘数据库字段名’ 而不是通过datagrid.selectItem.cells[不是通过在这里写整数].text
protected SqlConnection Conn;
protected DataSet DS;
protected SqlDataAdapter DA;
private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
string StrSql;
if (!IsPostBack)
{
DB = new DataBase();
DS = new DataSet();
StrSql = "select * from Prjct where Pass = 'Pass'";
DS = DB.RunProc(StrSql,DS,"Prjct");
DGPrjct.DataSource = DS.Tables["Prjct"].DefaultView;
DGPrjct.DataBind();
TextBox1.Text = DS.Tables["Prjct"].DefaultView[1]["PrjctName"].ToString();//这一行在这里是正确的
}
}
private void Button5_Click(object sender, System.EventArgs e)
{
TextBox1.Text = DS.Tables["Prjct"].DefaultView[1]["PrjctName"].ToString();//为什么在这里就不正确了:出错信息是:未将对象引用设置到对象的实例。 我的DS是全局变量啊,在Page_Load中已经实例化了啊}上边就是我的问题。 我的最终目的就是:点击datagrid,textbox可以获取值,获取的方式通过‘数据库字段名’ 而不是通过datagrid.selectItem.cells[不是通过在这里写整数].text
解决方案 »
- 如何动态引用一个样式表文件到网页的<head>中? asp.net (C#)
- .opml文件是怎么创建的呢?有谁知道吗?像:http://rss.dayoo.com/opml/news.opml
- 这句话是什么意思
- 如何制作数据库连接,本站内提供数据库,搜索站内信息
- 怎么能得到下面网站的验证图片地址。
- 高手帮忙!!!!
- 如何得到网络路径下某图片的尺寸大小。
- 有关树形结构的 小问题 (路过的高人帮帮忙啊!)
- 移动公司辅助缴费系统
- 高分求救,急:用javascript弹出关闭警告框问题!!!
- 水晶报表列太多界面放不下,该如何解决?
- Excel:关于如何解决服务器没有安装office,而需要excel进程,生成excel报表--在线
变量在页面刷新之后是不会被保存下来的,楼主首先要搞清楚asp.net到底是怎么运作的
Top
太感谢了! :)
刷新以后变量不会保存,楼主点击按钮事件会再Page_Load(object sender, System.EventArgs e)一遍而此时不会执行if (!IsPostBack)里面的内容,也就是”DS“未将对象引用设置到对象的实例
就是这个问题,楼主可以想想怎么改~ ^^
e.item.findControl("TextBox1")
请问这是什么意思?
private void Button5_Click(object sender, System.EventArgs e)
{
e.item.findControl("TextBox1");//这样子就报错。}
private void Button5_Click(object sender, System.EventArgs e)
{
e.item.findControl("TextBox1");//这样子就报错。}
怎么可能在这个事件里运行到这句e....这句捏.肯定是错的.这里按钮的CLICK事件e参数怎么可能会带有DATAGRID的参数形式呢,
你先说说你需要做到功能..
是查找你DataGrid 模板列名为TextBox1的控件
我没有用模板列,全部用的是绑定列。我的最终目的就是:点击datagrid,textbox可以获取值,获取的方式通过‘数据库字段名’ 而不是通过datagrid.selectItem.cells[不是通过在这里写整数].text,请教一下该怎么样做。
(现在有种方法如下:但要查询数据库,有没有更直接的)
private void DGPrjct_SelectedIndexChanged(object sender, System.EventArgs e)
SqlDataReader DR;
string StrSelect,StrSql;
StrSelect = DGPrjct.SelectedItem.Cells[2].Text;
StrSql = "select * from prjct where PrjctNo = '" + StrSelect +"'";
DR = DB.RunProcGetReader(StrSql);
dr.read();
TextBox1.Text = DR["PrjctName"].ToString();
TextBox2.Text = DR["PrjctNo"].ToString();
TextBox3.Text = DR["OrderNo"].ToString();
就可以通过
datagrid.selectItem.cells[你要的字段对应的序号].text
获取数据了
然后datagridItem.FindControl("textbox1"),textbox txt=datagridItem.FindControl("textbox1"),
你记住数据库中"PrjctName","PrjctNo","OrderNo"在DataGrid中的位置不就行了吗?
就可以通过
datagrid.selectItem.cells[你要的字段对应的序号].text
获取数据了
但当有20个字段的时候就很容易出错了。
我现在解决了
public void GridBndTwo()///用户只能看见自己下的单
{
string StrSql,StrSelect;
DataSet DS = new DataSet();
StrSelect = DGPrjct.SelectedItem.Cells[2].Text;
DataBase DB = new DataBase();
SqlConnection Conn = DB.ReturnConn();
StrSql = "select * from Stuff where PrjctNo = @PrjctNo And CrtMan = @CrtMan";
SqlDataAdapter DA = new SqlDataAdapter(StrSql , Conn);
DA.SelectCommand.Parameters.Add("@PrjctNo",SqlDbType.NVarChar,50);
DA.SelectCommand.Parameters.Add("@CrtMan",SqlDbType.NVarChar,50);
DA.SelectCommand.Parameters["@PrjctNo"].Value = StrSelect;
DA.SelectCommand.Parameters["@CrtMan"].Value = Session["Uname"].ToString();
try
{
DA.Fill(DS,"Stuff");
}
catch(Exception Err)
{
throw Err;
}
DGStuff.DataSource = DS.Tables["Stuff"].DefaultView;
DGStuff.DataBind();
Session["DS"] = DS; //把dataset存在session里边TxtPrjct.Text = DGPrjct.SelectedItem.Cells[1].Text;
TxtPrjctNo.Text = DGPrjct.SelectedItem.Cells[2].Text;
}
private void DGStuff_SelectedIndexChanged(object sender, System.EventArgs e)
{
DwnLstStuffType.SelectedIndex = 0;
DwnLstType.SelectedIndex = 0;
DataSet DS = (System.Data.DataSet) Session["DS"];///在这里取出来
int IntSelect;
IntSelect = DGStuff.SelectedIndex;TxtPrjct.Text = DS.Tables["Stuff"].DefaultView[IntSelect]["PrjctName"].ToString();
TxtPrjctNo.Text = DS.Tables["Stuff"].DefaultView[IntSelect]["PrjctNo"].ToString();
TxtSNo.Text = DS.Tables["Stuff"].DefaultView[IntSelect]["SNo"].ToString();
TxtToData.Text = DS.Tables["Stuff"].DefaultView[IntSelect]["ToData"].ToString();
DwnLstType.SelectedItem.Text = DS.Tables["Stuff"].DefaultView[IntSelect]["ListType"].ToString();
DwnLstStuffType.SelectedItem.Text = DS.Tables["Stuff"].DefaultView[IntSelect]["StuffType"].ToString();
TxtCrtMan.Text = DS.Tables["Stuff"].DefaultView[IntSelect]["CrtMan"].ToString();
TxtCrtTime.Text = DS.Tables["Stuff"].DefaultView[IntSelect]["CrtTime"].ToString();
TxtMdfMan.Text = DS.Tables["Stuff"].DefaultView[IntSelect]["MdfMan"].ToString();
TxtMdfTime.Text = DS.Tables["Stuff"].DefaultView[IntSelect]["MdfTime"].ToString();
TxtReason.Text = DS.Tables["Stuff"].DefaultView[IntSelect]["Reason"].ToString();
TxtExplain.Text = DS.Tables["Stuff"].DefaultView[IntSelect]["Explain"].ToString();
TxtRe.Text = DS.Tables["Stuff"].DefaultView[IntSelect]["Re"].ToString();
TxtAddMoney.Text = DS.Tables["Stuff"].DefaultView[IntSelect]["AddMoney"].ToString();
TxtDelay.Text = DS.Tables["Stuff"].DefaultView[IntSelect]["Delay"].ToString();
TxtSelfRe.Text = DS.Tables["Stuff"].DefaultView[IntSelect]["SelfRe"].ToString();
}
我想大概你学.NET不久吧,多了解一下请问这是什么意思?
private void Button5_Click(object sender, System.EventArgs e)
{
e.item.findControl("TextBox1");//这样子就报错。}
怎么可能在这个事件里运行到这句e....这句捏.肯定是错的.这里按钮的CLICK事件e参数怎么可能会带有DATAGRID的参数形式呢,
你先说说你需要做到功能..
我就是当点击datagrid时,把点击的记录读到textbox中,但不想通过
datagrid.selectItem.cell[整数].tostring, 通这这种整数这种方式,因为字段多了容易出错,请问你是怎么做的呢?