如果用户点击按钮,那么数据库表是通过asp.net用c#在数据库中创建的,该怎么办?

问题描述:

我的问题是,如果用户点击按钮(例如default.aspx中的位置),那么数据库表是在数据库(SQL Express)中创建的,那怎么办?如果用户点击按钮,那么数据库表是通过asp.net用c#在数据库中创建的,该怎么办?

我已试过,但错误在调试过程中存在的,错误是:

  1. the best overloaded method match for 'system.data.odbc.odbc command.odbc command(string,system.data.odbc.odbc connection)'has some invalid arguments.
  2. Argument'2':cannot convert from 'system.data.sqlclient.sqlconnection' to 'system.data.odbc.odbc connection'.

C#编写的后面的按钮(按钮的代码被放置在的Default.aspx ,例如)是:

using System; 
using System.Collections; 
using System.Configuration; 
using System.Data; 
using System.Linq; 
using System.Web; 
using System.Web.Security; 
using System.Web.UI; 
using System.Web.UI.HtmlControls; 
using System.Web.UI.WebControls; 
using System.Web.UI.WebControls.WebParts; 
using System.Xml.Linq; 
//using PractiseWeb.DataSet1TableAdapters; 
using System.Collections.Generic; 
using System.Data.OleDb; 
using System.Diagnostics; 
using System.ComponentModel; 
using System.Text; 
using System.Data.SqlClient; 
using System.Data.Odbc; 
using ADOX; 
using ADODB; 

public partial class _Default : System.Web.UI.Page 
{ 
     SqlConnection conn; 
     OdbcCommand cmd; 
    string connectionString = ConfigurationManager.ConnectionStrings["gameConnectionString"].ConnectionString; 
    protected void Page_Load(object sender, EventArgs e) 
    { 

    } 
    protected void Button1_Click(object sender, EventArgs e) 
    { 
     try 
{ 

    conn = new SqlConnection(connectionString); 
    if (!(conn.State == ConnectionState.Open)) 
    { 
     conn.Open(); 
    } 
    string sql = "CREATE TABLE mySchoolRecord(StudentId INTEGER CONSTRAINT PkeyMyId PRIMARY KEY," 
    + "Name CHAR(50)," + "Address CHAR(255)," + "Contact INTEGER));"; 
    cmd = new OdbcCommand(sql,conn);// in this line above two errors occurred 
    cmd.ExecuteNonQuery(); 

    sql = "INSERT INTO mySchoolRecord (StudentId, Name,Address,Contact) VALUES (1, 'Mr. Manish', " + " 'Sector-12,Noida', 2447658 );"; 
    cmd = new OdbcCommand(sql,conn);// in this line above two errors occurred 
    cmd.ExecuteNonQuery(); 

    sql = "INSERT INTO mySchoolRecord (StudentId, Name,Address,Contact) VALUES (2, 'Mr. Ravi', " + " 'New Delhi', 2584076521 );"; 
    cmd = new OdbcCommand(sql,conn);// in this line above two errors occurred 
    cmd.ExecuteNonQuery(); 

    sql = "INSERT INTO mySchoolRecord (StudentId, Name,Address,Contact) VALUES (3, 'Mr. Peter', " + " 'United States', 25684124 );"; 
    cmd = new OdbcCommand(sql,conn);// in this line above two errors occurred 
    cmd.ExecuteNonQuery(); 


    if (conn.State == ConnectionState.Open) 
    { 
     conn.Close(); 
    } 

} 
catch (OdbcException ex) 
{ 
    Console.WriteLine(ex); 
} 

    } 
} 
+0

,因此不理想,以创建应用程序查看数据库表。总是在DAtabases中创建数据库,架构和关系,而不是处理前端应用程序中的内容。只是一个建议,虽然 – 2013-09-12 07:37:32

您正在混合使用ADO(SQLConnection)和ODBC(ODBCCommand)。如果您使用SQL Server,则使用SQLCommand;如果不使用,则使用ODBCCommand。你不能混合两者。

试试这个

using System; 
using System.Collections; 
using System.Configuration; 
using System.Data; 
using System.Linq; 
using System.Web; 
using System.Web.Security; 
using System.Web.UI; 
using System.Web.UI.HtmlControls; 
using System.Web.UI.WebControls; 
using System.Web.UI.WebControls.WebParts; 
using System.Xml.Linq; 
//using PractiseWeb.DataSet1TableAdapters; 
using System.Collections.Generic; 
using System.Data.OleDb; 
using System.Diagnostics; 
using System.ComponentModel; 
using System.Text; 
using System.Data.SqlClient; 
using System.Data.Odbc; 
using ADOX; 
using ADODB; 

public partial class _Default : System.Web.UI.Page 
{ 
     SqlConnection conn; 
     OdbcCommand cmd; 
    string connectionString = ConfigurationManager.ConnectionStrings["gameConnectionString"].ConnectionString; 
    protected void Page_Load(object sender, EventArgs e) 
    { 

    } 
    protected void Button1_Click(object sender, EventArgs e) 
    { 
     try 
{ 

    conn = new SqlConnection(connectionString); 
    if (!(conn.State == ConnectionState.Open)) 
    { 
     conn.Open(); 
    } 
    string sql = "CREATE TABLE mySchoolRecord(StudentId INTEGER CONSTRAINT PkeyMyId PRIMARY KEY," 
    + "Name CHAR(50)," + "Address CHAR(255)," + "Contact INTEGER));"; 
    cmd = new SqlCommand(sql,conn);// in this line above two errors occurred 
    cmd.ExecuteNonQuery(); 

    sql = "INSERT INTO mySchoolRecord (StudentId, Name,Address,Contact) VALUES (1, 'Mr. Manish', " + " 'Sector-12,Noida', 2447658 );"; 
    cmd = new SqlCommand(sql,conn);// in this line above two errors occurred 
    cmd.ExecuteNonQuery(); 

    sql = "INSERT INTO mySchoolRecord (StudentId, Name,Address,Contact) VALUES (2, 'Mr. Ravi', " + " 'New Delhi', 2584076521 );"; 
    cmd = new SqlCommand(sql,conn);// in this line above two errors occurred 
    cmd.ExecuteNonQuery(); 

    sql = "INSERT INTO mySchoolRecord (StudentId, Name,Address,Contact) VALUES (3, 'Mr. Peter', " + " 'United States', 25684124 );"; 
    cmd = new SqlCommand(sql,conn);// in this line above two errors occurred 
    cmd.ExecuteNonQuery(); 


    if (conn.State == ConnectionState.Open) 
    { 
     conn.Close(); 
    } 

} 
catch (OdbcException ex) 
{ 
    Console.WriteLine(ex); 
} 

    } 
} 

通过的SqlCommand更换的OdbcCommand将解决您的问题

+0

先生,我这样做,odbc命令替换为sqlcommand,错误已删除,但没有数据库中创建表(在sql express中),请先生解决我的问题 – sayyer 2011-03-21 05:39:34

using Microsoft.VisualBasic; 
using System; 
using System.Collections; 
using System.Collections.Generic; 
using System.Data; 
using System.Diagnostics; 
using System.Data.SqlClient; 

    public object connection() 
    { 
     SqlConnection myConnectionString = new SqlConnection("Data Source=(local)\\SQLEXPRESS;Initial Catalog=master;Integrated Security=True;Pooling=False"); 
     double[] a = new double[6]; 
     string myCommand = null; 
     myCommand = "CREATE database soft_billing"; 
     SqlCommand cmd = new SqlCommand(myCommand, myConnectionString); 
     try { 
      for (int k = 0; k <= 4; k++) { 
       a(k) = 0.0; 
      } 
      cmd.Connection.Open(); 
      cmd.ExecuteNonQuery(); 
      t.Enabled = true; 
      t.Interval = 10; 
      ProgressBar1.Value = 0; 

      cmd.Connection.Close(); 

     } catch { 
      Interaction.MsgBox(" Already installed database", MsgBoxStyle.Critical, " MaS InfoTech- Warning"); 

     } 
     try { 
      SqlConnection cn = new SqlConnection("Data Source=(local)\\SQLEXPRESS;Initial Catalog=soft_billing;Integrated Security=True;Pooling=False"); 
      string sql = null; 
      sql = "CREATE TABLE customer(cus_name varchar(50) NULL,address varchar(50) NULL,mobno numeric(18, 0) NULL,tin varchar(50) NULL,kg varchar(50) NULL)"; 
      cmd = new SqlCommand(sql, cn); 
      // , connection); 
      cmd.Connection.Open(); 
      cmd.ExecuteNonQuery(); 
      cmd.Connection.Close(); 

     } catch { 
      Interaction.MsgBox(" Already installed database", MsgBoxStyle.Critical, " MaS InfoTech- Warning"); 

     } 
    }