如果用户点击按钮,那么数据库表是通过asp.net用c#在数据库中创建的,该怎么办?
问题描述:
我的问题是,如果用户点击按钮(例如default.aspx中的位置),那么数据库表是在数据库(SQL Express)中创建的,那怎么办?如果用户点击按钮,那么数据库表是通过asp.net用c#在数据库中创建的,该怎么办?
我已试过,但错误在调试过程中存在的,错误是:
the best overloaded method match for 'system.data.odbc.odbc command.odbc command(string,system.data.odbc.odbc connection)'has some invalid arguments.
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);
}
}
}
答
您正在混合使用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");
}
}
,因此不理想,以创建应用程序查看数据库表。总是在DAtabases中创建数据库,架构和关系,而不是处理前端应用程序中的内容。只是一个建议,虽然 – 2013-09-12 07:37:32