qq_41712950 2018-12-18 16:21 采纳率: 41.2%
浏览 462

DataList控件绑定后为什么不显示?

public partial class index : System.Web.UI.Page
{
SqlConnection con = null;
SqlCommand cmd = null;
SqlDataAdapter datp = null;
DataSet ds = new DataSet();
string constr = "";
protected void Page_Load(object sender, EventArgs e)
{
UnobtrusiveValidationMode = UnobtrusiveValidationMode.None;
this.DataList1.DataSource = getDataTable("select top 3 * from ContentText");
this.DataList1.DataBind();
}
public DataTable getDataTable(string sql)
{
constr = System.Configuration.ConfigurationManager.ConnectionStrings["constr"].ToString();
try
{
con = new SqlConnection(constr);
con.Open();
//Response.Write("ok");
cmd = new SqlCommand(sql, con);
datp = new SqlDataAdapter(cmd);
datp.Fill(ds);
}
catch (Exception e1)
{
System.Diagnostics.Debug.WriteLine(e1.Message);
}
finally
{
con.Close();
}
return ds.Tables[0];
}

    数据库连接成功的,sql语句也没毛病
  • 写回答

1条回答 默认 最新

  • 你知我知皆知 2024-08-07 11:32
    关注

    以下回答参考 皆我百晓生券券喵儿 等免费微信小程序相关内容作答,并由本人整理回复。

    在.NET中,SqlDataReader 是一种非常有用的对象,它可以在服务器端执行SQL查询并返回结果。然而,当使用 SqlDataAdapter.Fill() 方法时,它会自动将数据填充到一个 DataSet 对象中。

    如果你的数据表有多个字段,并且你想要在每次调用 Fill() 方法时只填充特定的列,你可以先获取这些列的名称,然后在 SQL 查询中指定这些列作为参数。例如:

    string[] columns = { "Column1", "Column2" }; // 这里是你的字段列表
    string sql = string.Join(",", columns); // 将字段列表转换为逗号分隔的字符串
    
    // 然后你可以这样设置 SQL 查询:
    cmd.Parameters.AddWithValue("@column1", SqlDbType.VarChar).Value = Column1;
    cmd.Parameters.AddWithValue("@column2", SqlDbType.VarChar).Value = Column2;
    

    但是,请注意,这可能会影响性能,特别是当字段数量较多或字段类型复杂时。因此,在实际应用中,通常建议直接将所有字段添加到 SQL 查询中,以避免不必要的处理和延迟。

    评论

报告相同问题?