How To Create Table In Asp Net C#
If you have worked with SQL Server Database, then I am sure you know how to create a table, add columns, keys etc. In SQL Server, either you use a Create Statement to create a table or you might use the Management Studio. Web developers using Asp.Net will find this article useful, since I am sharing an example on how to create a Table dynamically in SQL Server using Asp.Net C# and Vb.Net
You can execute any SQL Server statement programmatically using ADO.Net methods and properties. This feature comes in handy when you want your users to dynamically create tables, add columns etc. Of course, your users do not see what happens behind the scene. Only you, as a developer, know this.
Usually, this feature is available to Admins in an application, be it e-commerce or any app that requires dynamic features.
The Markup
On my web page I have three textboxes and a button control. I also have a hidden field, which will store values extracted from the textboxes (See the Script). The code behind procedure will get table and columns names from the hidden field.
image
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"></script> <asp:TextBox ID="tbTable" placeholder="Enter Table Name" runat="server"></asp:TextBox> <asp:TextBox ID="tbCol1" CssClass="input" placeholder="Enter Column Name" runat="server"></asp:TextBox> <asp:TextBox ID="tbCol2" CssClass="input" placeholder="Enter Column Name" runat="server"></asp:TextBox> <asp:Button ID="btCreate" Text="Create Table" runat="server" OnClick="CreateTableInSQLSERVER_Click" CssClass="bt" /> <br /><asp:Label ID="message" runat="server"></asp:Label> <asp:HiddenField ID="col1" runat="server" />
The Script
Since I am creating the SQL Server table programmatically, the textboxes will provide me with the column names. The jQuery script will help me extract the values from the textboxes and store it in a hidden field.
<script> $(document).ready(function () { BindControls(); }); function BindControls() { var values = new Array(); $('#btCreate').click(function () { $('.input').each(function () { if (this.value != '') values.push(this.value); }); $('#col1').val(values); }); } </script>
Code Behind (C#)
using System; using System.Web; using System.Web.Services; using System.Data.SqlClient; public partial class SiteMaster : System.Web.UI.MasterPage { public void CreateTableInSQLSERVER_Click(object sender, EventArgs e) { string sConnString = "Data Source=DNA;Persist Security Info=False;" + "Initial Catalog=DNA_Classified;User Id=sa;Password=demo;Connect Timeout=30;"; message.Attributes.Add("style", "border:none;font:14px Verdana;"); message.Text = ""; try { string sFields = col1.Value; int iCnt = 0; string sColumns = ""; for (iCnt = 0; iCnt <= sFields.Split(',').Length - 1; iCnt++) { if (string.IsNullOrEmpty(sColumns)) { sColumns = "[" + sFields.Split(',')[iCnt].Replace(" ", "") + "] VARCHAR (100)"; } else { sColumns = sColumns + ", [" + sFields.Split(',')[iCnt].Replace(" ", "") + "] VARCHAR (100)"; } } using (SqlConnection con = new SqlConnection(sConnString)) { string sQuery = null; sQuery = "IF OBJECT_ID('dbo." + tbTable.Text.Replace(" ", "_") + "', 'U') IS NULL " + "BEGIN " + "CREATE TABLE [dbo].[" + tbTable.Text.Replace(" ", "_") + "](" + "[" + tbTable.Text.Replace(" ", "_") + "_ID" + "] INT IDENTITY(1,1) NOT NULL CONSTRAINT pk" + tbTable.Text.Replace(" ", "_") + "_ID" + " PRIMARY KEY, " + "[CreateDate] DATETIME, " + sColumns + ")" + " END"; using (SqlCommand cmd = new SqlCommand(sQuery)) { cmd.Connection = con; con.Open(); cmd.ExecuteNonQuery(); con.Close(); message.Text = "Table created successfuly."; message.ForeColor = System.Drawing.Color.Green; } } } catch (Exception ex) { message.Text = "There was an error."; message.ForeColor = System.Drawing.Color.Green; } finally { } } }
Code Behind (Vb.Net)
Option Explicit On Imports System.Data.SqlClient Partial Class Site Inherits System.Web.UI.MasterPage Sub CreateTableInSQLSERVER_Click(ByVal sender As Object, ByVal e As EventArgs) message.Attributes.Add("style", "border:none;font:14px Verdana;") message.Text = "" Dim sConnString As String = "Data Source=DNA;Persist Security Info=False;" & _ "Initial Catalog=DNA_Classified;User Id=sa;Password=demo;Connect Timeout=30;" Try Dim sFields As String = col1.Value Dim iCnt As Integer = 0 Dim sColumns As String = "" For iCnt = 0 To sFields.Split(",").Length - 1 If Trim(sColumns) = "" Then sColumns = "[" & Replace(sFields.Split(",")(iCnt), " ", "") & "] VARCHAR (100)" Else sColumns = sColumns & ", [" & Replace(sFields.Split(",")(iCnt), " ", "") & "] VARCHAR (100)" End If Next Using con As SqlConnection = New SqlConnection(sConnString) Dim sQuery As String sQuery = "IF OBJECT_ID('dbo." & Replace(Trim(tbTable.Text), " ", "_") & "', 'U') IS NULL " & _ "BEGIN " & _ "CREATE TABLE [dbo].[" & Replace(Trim(tbTable.Text), " ", "_") & "](" & _ "[" & Replace(Trim(tbTable.Text), " ", "_") & "_ID" & "] INT IDENTITY(1,1) NOT NULL CONSTRAINT pk" & _ Replace(Trim(tbTable.Text), " ", "_") & "_ID" & " PRIMARY KEY, " & _ "[CreateDate] DATETIME, " & _ sColumns & _ ")" & _ " END" Using cmd As SqlCommand = New SqlCommand(sQuery) With cmd .Connection = con con.Open() cmd.ExecuteNonQuery() con.Close() message.Text = "Table created successfuly." message.ForeColor = Drawing.Color.Green End With End Using End Using Catch ex As Exception message.Text = "There was an error." message.ForeColor = Drawing.Color.Red Finally End Try End Sub End Class
Similarly you can Drop the table by using SQL Server Drop Table Table_Name statement. In-addition, using a similar method you can create Views, Procedures and other SQL Server Objects programmatically.
That's it. Thanks for reading. ☺
← Previous Next →
How To Create Table In Asp Net C#
Source: https://www.encodedna.com/aspdotnet/programmatically-create-a-table-in-sqlserver-using-aspdotnet-csharp.htm
Posted by: murphyconst1993.blogspot.com
0 Response to "How To Create Table In Asp Net C#"
Post a Comment