以下这段代码有问题,有没有人可以帮我改一下

来源:百度知道 编辑:UC知道 时间:2024/05/17 20:59:21
public partial class studnet_NewsDetails : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
newdatabinder();
}
}
private void newdatabinder()
//查看新闻内容函数方法
{
string str;
str = Request.QueryString["qid"].ToString();
OleDbConnection con = db.con();
con.Open();
OleDbCommand cmd = new OleDbCommand("select * from News where qid=@qid", con);

cmd.Parameters.Add("@qid", SqlDbType.VarChar);
cmd.Parameters["@qid"].Value = str;
OleDbDataReader sdr = cmd.ExecuteReader();
if (sdr.Read())
{
this.label1.Text = "问题标题:" + sdr["Nname"].ToString() + "<br>" + "发表时间:" + sdr["Ntime"].ToString();
this.labelnewsdetail.Text = sdr["Ncount"].ToString();

}
}
}
总是显示数据库中第一条数据的值,
应该是参数传递的问题,

OleDbCommand cmd = new OleDbCommand("select * from News where qid=@qid", con);
OleDbCommand cmd = new OleDbCommand("select * from News where qid=@"+str, con);
你不事把值给了str吗,加在一起就可以了

OleDbCommand cmd = new OleDbCommand("select * from News where qid=@qid", con);

改为

OleDbCommand cmd = new OleDbCommand(String.Fromat("select * from News where qid={0}",这里是你的“具体数值”), con);