Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用ASP.net web循环显示数据库中的内容_C#_Sql_Asp.net_Sql Server - Fatal编程技术网

C# 使用ASP.net web循环显示数据库中的内容

C# 使用ASP.net web循环显示数据库中的内容,c#,sql,asp.net,sql-server,C#,Sql,Asp.net,Sql Server,我需要动态添加从数据库读取的页面内容。下面只是一个代码草案 <div> <asp button> < asp label> </div> 最初,您可以尝试这样的方法,并在此基础上进一步发展: //using System.Web.UI.HtmlControls; var searchValue = "somethingYouSearchFor" ; var connection = new SqlConnec

我需要动态添加从数据库读取的页面内容。下面只是一个代码草案

<div> 
<asp button>
< asp label> 
</div>

最初,您可以尝试这样的方法,并在此基础上进一步发展:

//using System.Web.UI.HtmlControls;    


var searchValue = "somethingYouSearchFor" ;

var connection = new SqlConnection("connection string here");
var query = new SqlCommand("SELECT Name, Country FROM MyTable WHERE value3 = @SearchValue", connection);
query.Parameters.AddWithValue("@SearchValue", searchValue);

connection.Open();

SqlDataReader reader = query.ExecuteReader();

if (reader.HasRows)
{
    while (reader.Read())
    {
        var addDiv = new HtmlGenericControl("div");      
        addDiv.ID = "anyId"; //Optional
        addDiv.Style.Add(HtmlTextWriterStyle.BackgroundColor, "Yellow"); //Optional
        addDiv.Style.Add(HtmlTextWriterStyle.Color, "Black"); //Optional
        addDiv.Style.Add(HtmlTextWriterStyle.Height, "200px"); //Optional
        addDiv.Style.Add(HtmlTextWriterStyle.Width, "300px"); //Optional
        
        var nameLabel = new HtmlGenericControl("label");  
        nameLabel.InnerText  = reader["Name"];
        addDiv.Controls.Add(nameLabel);
        
        var countryLabel = new HtmlGenericControl("label");  
        countryLabel.InnerText  = reader["Country"];
        addDiv.Controls.Add(countryLabel);
        
        this.Controls.Add(addDiv);

    }
}

connection.Close();
reader.Close();
query.Dispose();
这可能是访问数据库的最简单方法,您需要填写连接字符串(使用此链接,您可以看到包括MS SQL连接字符串在内的多个示例)


您需要提供一个与数据库匹配的有效SQL查询(最好的做法是在MS SQL Studio又名SSMS中测试SQL查询),然后在C#代码中实现它。

我认为asp.net Repeater控件最适合您的情况。 MSDN链接。 与MSDN文档中显示的示例类似,您将使用数据库中的数据填充一个集合,然后将该集合绑定到中继器的数据源

Repeater1.DataSource = values;
Repeater1.DataBind();
在标记中,可以在中访问集合中的对象

<asp:Repeater id="Repeater1" runat="server">
      <ItemTemplate>
         <%# DataBinder.Eval(Container.DataItem, "Name") %> (<%# DataBinder.Eval(Container.DataItem, "Content") %>)
      </ItemTemplate>             
   </asp:Repeater>

()

添加更多标记和样式以满足您的需要。

什么数据库?你尝试了什么?普通的sql server数据库我想从每个数据行创建一个提要类似于facebook帖子你尝试了什么?代码?我只是不能说出我到底想要什么样的过程,``while(reader.read()){}```结果应该是``命名ABC国家B确定取消命名QWE国家L确定取消``谢谢,它按照我的要求创建了分区,但有没有一种方式可以像在分区之间和标签之间添加
和添加bootstrap@techlk ,br是一个自动关闭标记,因此据我所知,它不受
HtmlGenericControl
的支持,但您可以
继承它来开发自定义的东西。欲了解更多信息,请参阅本文中的答案
Repeater1.DataSource = values;
Repeater1.DataBind();
<asp:Repeater id="Repeater1" runat="server">
      <ItemTemplate>
         <%# DataBinder.Eval(Container.DataItem, "Name") %> (<%# DataBinder.Eval(Container.DataItem, "Content") %>)
      </ItemTemplate>             
   </asp:Repeater>