bears123
Geregistreerd op: 24 Mei 2018 Berichten: 786
|
Geplaatst: 03-07-2018 12:43:42 Onderwerp: Camo Robert Golden Jersey |
|
|
Mysql Schema in C#
Author: rajib bahar
Figure 1.0: Screenshot of MySQL Utility.
Introduction
This article covers how to talk to MySQL database and extract the schema from it.
Background
As many of you know Patrick Mahomes II Rush Jersey , MySQL is an open source database. It is free for non-commercial purposes. This article would be helpful for anybody doing development in MySQL and C#. What is the motivation behind this utility? Well, an application could crash in the middle of database activities. Often, these databases may not reside on the same site as your developmenttesting machine. We need a utility that would help us get a snapshot of the database at client site. If you have an utility that would capture the state of the client database Breeland Speaks Rush Jersey , then, you can load it in your testing machine. The idea is to reproduce the situation your client faced. That way you can address any undiscovered issues.
Functionality Supported
Saving Schema as Text
Viewing Schema
Viewing Entire Database
Required Tools
ODBC.NET Data Provider from Microsoft
MySQL Database
MySQL ODBC Connector
Using the code
First, add a reference to Microsoft ODBC. Then use the using microsoft.odbc statement to tell it that you want to you MS ODBC. In short Camo Will Redmond Jersey , OdbcConnection will be used to open connection, OdbcCommand to execute queries, and OdbcDataReader to read the resulting row set. The code shown below documents each step. You will notice Camo Sammy Watkins Jersey , it runs the MySQL specific command SHOW TABLES to get the list of tables. Then it runs another query based on that particular table, SHOW COLUMNS IN CURRENT_TABLE. This is all the code does.
The Code
Collapse *
@@ Function:
@f ::PrepareSchema
@@ Description:
@d when this is called the widget is updated and everything
about this database and tables are displayed
@@ Type:
@t public
@@ Arguments:
none.
@@ Returns:
@r void
@@ Preconditions:
@c Provided that the GUI is running and DB Connection is made.
@@ Postconditions:
@o DB schema displayed
@@ References:
@e Query MySql with C#.
*
public void PrepareSchema()
{
create the connection object by setting the DSN
OdbcConnection ocConnection = new OdbcConnection("DSN="+ strDSN);
second connection is created so we could make
queries while executing one
OdbcConnection ocConnection2 = new OdbcConnection("DSN="+ strDSN);
this will open up both connections
ocConnection.Open();
ocConnection2.Open();
declare the commands for each table and column
OdbcCommand ocTableCommand;
OdbcCommand ocColumnCommand;
create a command object. this will execute SHOW TABLES
query. In mysql, it shows all of the tables contained in
the database in use.
ocTableCommand = new OdbcCommand("SHOW TABLES" Camo Anthony Hitchens Jersey , ocConnection);
declare reader objects for tables and columns
OdbcDataReader odrTableReader;
OdbcDataReader odrColumnReader;
queries that return result set are executed by ExecuteReader()
If you are to run queries like insert, update, delete then
you would invoke them by using ExecuteNonQuery()
odrTableReader = ocTableCommand.ExecuteReader();
place create db statement in rich text box
rchtxtSchema.Text += "CREATE DATABASE ";
rchtxtSchema.Text += ocConnection.Database;
rchtxtSchema.Text += ";rnrn";
rchtxtSchema.Text += "USE DATABASE ";
rchtxtSchema.Text += ocConnection.Database;
rchtxtSchema.Text += ";rnrn";
string strTable = "";
string strColumnName = "";
string strColumnType = "";
string strColumnNull = "";
string strColumnPKey = "";
string strColumnDflt = "";
string strColumnExtr = "";
reader the set of tables
while(odrTableReader.Read())
{
here we are expecting rows with only 1 column
containing the table name. that's why explcity
call GetString() at 0th index
strTable = odrTableReader.GetString(0);
rchtxtSchema.Text += "CREATE TABLE ";
rchtxtSchema.Text += strTable;
rchtxtSchema.Text += "rn(rn";
build up the command for each table
ocColumnCommand = new OdbcCommand("SHOW COLUMNS IN " +
strTable Camo Robert Golden Jersey , ocConnection2);
run the query
odrColumnReader = ocColumnCommand.ExecuteReader();
reading the set of columsn
while(odrColumnReader.Read())
{
This query returns the name of column, Type,
wherther it's Null Camo Chris Conley Jersey , whether it's primary Key,
the default value, and extra info such as
whether it's autoincrement or not
strColumnName = odrColumnReader.GetString(0);
strColumnType = odrColumnReader.GetString(1);
strColumnNull = odrColumnReader.GetString(2);
strColumnPKey = odrColumnReader.GetString(3);
strColumnDflt = odrColumnReader.GetString(4);
strColumnExtr = odrColumnReader.GetString(5);
if (!strColumnNull.Equals("YES"))
strColumnNull = " NOT NULL ";
else
strColumnNull = "";
if (strColumnPKey.Equals("PRI"))
strColumnPKey = " PRIMARY KEY ";
this.rchtxtSchema.Text += "n";
BERLIN Camo Mitch Morse Jersey , Dec. 11 (Xinhua) -- Monchengladbach clinched the first place in Group A by beating FC Zurich 3-0 on home soil in UEFA Europa League's last round of the group stages on Thursday.
Borussia Monchengladbach secured the top spot in Group A and their berth in the round of the last 32 as they cruised to a 3-0 over hapless FC Zurich thanks to the brace by Sweden international Branimir Hrgot. Wholesale France Soccer Jerseys Danny Drinkwater England Jersey Cheap Colombia Soccer Jerseys Filipe Luis Brazil Jersey Christian Kabasele Belgium Jersey Cheap Uruguay Jerseys Cheap Sweden Jerseys Cheap Baltimore Orioles Jerseys Wholesale Marlins Jerseys Wholesale Los Angeles Dodgers Jerseys |
|