try
ASPX
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<script src="jquery.min.js"></script>
<title></title>
<script>
function funChangeTable(ddlObj) {
var name = ddlObj.value;
$.ajax({
url: 'WebForm1.aspx/GetTableData',
data: JSON.stringify({ tableName: name }),
type: 'post',
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (response) {
var json = JSON.parse(response.d);
generateTable(json);
},
error: function (a, b, c) {
console.log(a, b, c);
}
});
}
function generateTable(json) {
var $table = $('#tblDynamic');
$table.find('thead').empty()
$table.find('tbody').empty()
if (json && json.length > 0) {
var header = json[0];
var columns = [];
for (var col in header) {
columns.push('<th>' + col + '</th>');
}
$table.find('thead').append('<tr>' + columns.join('') + '</tr>');
var rows = [];
for (var i = 0; i < json.length; i++) {
var row = json[i];
var tds = [];
for (var col in row) {
tds.push('<td>' + col + '</td>');
}
rows.push('<tr>' + tds.join() + '</tr>');
}
$table.find('tbody').append(rows.join(''));
}
}
</script>
</head>
<body>
<form runat="server">
<asp:DropDownList runat="server" ID="ddlTableNames" onchange="funChangeTable(this)">
</asp:DropDownList>
<table id="tblDynamic" border="1">
<thead></thead>
<tbody></tbody>
</table>
</form>
</body>
</html>
Code Behind
using System;
using System.Data;
using System.Data.SqlClient;
using System.Web.Services;
using Newtonsoft.Json;
using System.Linq;
using System.Collections.Generic;
namespace ExcelGridDemo
{
public partial class WebForm1 : System.Web.UI.Page
{
const string connString = "Data Source=.;Initial Catalog=karthik_test;Integrated Security=True";
protected void Page_Load(object sender, EventArgs e)
{
var data = GetAllTableNames();
ddlTableNames.DataSource = data;
ddlTableNames.DataBind();
ddlTableNames.Items.Insert(0,"Select a Table");
}
private static string[] GetAllTableNames() {
SqlConnection con = new SqlConnection(connString);
SqlCommand cmd = new SqlCommand("select name from sys.tables", con);
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataTable dt = new DataTable();
da.Fill(dt);
return dt.AsEnumerable().Select(k => k[0] + "").ToArray();
}
[WebMethod]
public static string GetTableData(string tableName)
{
if (GetAllTableNames().Contains(tableName))
{
SqlConnection con = new SqlConnection(connString);
SqlCommand cmd = new SqlCommand("select * from " + tableName, con);
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataTable dt = new DataTable();
da.Fill(dt);
string json = JsonConvert.SerializeObject(dt);
return json;
}
else
return "Table Name Not Found";
}
}
}