现在只能给namelink赋一条值,
怎么让给namelink赋值 ,满足like'%SearchText%' 的所有数据?诚谢!代码如下:
。。
try { Exsql.Open(); }
catch (Exception ex)
{
}
string cmd = "SELECT * FROM UserInfo WHERE shortname like '%" + SearchText + "%' or Usertname like '%" + SearchText + "%'";
SqlCommand myComm = new SqlCommand(cmd, Exsql.con);
SqlDataReader dr = null;
try
{
dr = myComm.ExecuteReader(CommandBehavior.CloseConnection);
if (dr.Read())
name = dr["UserTname"].ToString();//企业名称
id = dr["Userid"].ToString();//企业id
namelink = "◆<a href='ghzy.aspx?id=" + id + "' target='_blank'>" + name + "</a>";
namelink = namelink + "<br/><br/>"; }
catch
{
}
怎么让给namelink赋值 ,满足like'%SearchText%' 的所有数据?诚谢!代码如下:
。。
try { Exsql.Open(); }
catch (Exception ex)
{
}
string cmd = "SELECT * FROM UserInfo WHERE shortname like '%" + SearchText + "%' or Usertname like '%" + SearchText + "%'";
SqlCommand myComm = new SqlCommand(cmd, Exsql.con);
SqlDataReader dr = null;
try
{
dr = myComm.ExecuteReader(CommandBehavior.CloseConnection);
if (dr.Read())
name = dr["UserTname"].ToString();//企业名称
id = dr["Userid"].ToString();//企业id
namelink = "◆<a href='ghzy.aspx?id=" + id + "' target='_blank'>" + name + "</a>";
namelink = namelink + "<br/><br/>"; }
catch
{
}
我想实现给namelink赋上满足
string cmd = "SELECT * FROM UserInfo WHERE shortname like '%" + SearchText + "%' or Usertname like '%" + SearchText + "%'";
的所有数据值try
{
dr = myComm.ExecuteReader(CommandBehavior.CloseConnection);
if (dr.Read())
name = dr["UserTname"].ToString();//企业名称
id = dr["Userid"].ToString();//企业id
namelink = "◆<a href='ghzy.aspx?id=" + id + "' target='_blank'>" + name + "</a>";
namelink = namelink + "<br/><br/>"; }
是不是 这里面 需要这么 循环?
我拿。net实在头痛
if(dr.Read())
改成while(dr.Read())
但是所显示的还是只有一条数据,
只是没改之前显示的是 满足条件的id号为最小的数据
改了之后 显示的是 满足条件的id号为最大的数据
!
{
dr = myComm.ExecuteReader(CommandBehavior.CloseConnection);
string namelink=string.Empty;
while(dr.Read())
{
name = dr["UserTname"].ToString();//企业名称
id = dr["Userid"].ToString();//企业id
namelink += "◆<a href='ghzy.aspx?id=" + id + "' target='_blank'>" + name + "</a>"+"<br/><br/>";
} }
想把出去来的数据,显示出来,名字是一个连接对吧
我常用的方法,取出数据DataTable,然后复制给GridView
GridView里弄一列linkButton,给LinkButto赋值对象的ID,点击button取到ID,触发事件LinkButton中,CommandName='<%# Eval("ID") %>'藏值
用OnCommand事件取得ID
protected void btn1_Command(object sender, CommandEventArgs e)
{
string id= e.CommandName.ToString();//取得当前行藏值
//后续别的操作...
}
{
//Do something.
}因为dr.Read()方法执行一次,游标就向下查询一条新记录,如果查到的话返回true。
如果用if的话只执行了一次,所以你的代码里面获取的只是第一条,
而用while的话如果查询结束,即再没有下一条结果时dr.Read()返回false,跳出循环。
if(dr.Read())
改成while(dr.Read())已经换了
但是所显示的还是只有一条数据,
只是没改之前显示的是 满足条件的id号为最小的数据
改了之后 显示的是 满足条件的id号为最大的数据
!
string namelink = string.Empty;
出错:编译器错误信息: CS0136: 不能在此范围内声明名为“namelink”的局部变量,因为这样会使“namelink”具有不同的含义,而它已在“父级或当前”范围中表示其他内容了
证明 游标 是 往下面 跑了的
但是 没给namelink 赋着值!
看错误提示
{
dr = myComm.ExecuteReader(CommandBehavior.CloseConnection);
if (dr.Read())
name = dr["UserTname"].ToString();//企业名称
id = dr["Userid"].ToString();//企业id
namelink += "<a href='ghzy.aspx?id=" + id + "' target='_blank'>" + name + "</a><br/><br/>";
}要用+= 把上原来的值与新加的值串联起来 不然你总是赋的是新值