SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["manageConnectionString"].ConnectionString); con.Open();
string s="select "+TextBox1.Text.Trim()+" from sysobjects where xtype='u'";//先查询有没有这个表
SqlCommand comm = new SqlCommand();
SqlDataReader sd = comm.ExecuteReader();
if(sd.Read())
{}
else{}一个一个打的,你试试看行不行,别粘贴
如果不行的话,你试试 int sd =comm.ExecuteNonQuery();
if(sd>0)
{}
if后面的括号里,需要判断数据库是否存在该表,那么就需要连接数据库。
所以你这里在if后面的大括号里才连接数据库,就不对了。
你需要在if之前就连接一次数据库,并用SQL语句
SELECT COUNT(0) FROM sysobjects WHERE [name]='表名' AND xtype='u' 来判断数据库里是否存在该表。
然后再继续你后面的那些逻辑。
或者你可以再省事一点,直接一次搞定:
SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["manageConnectionString"].ConnectionString);
con.Open();
string tableName = TextBox1.Text.Trim();
string sql = String.Format(@"IF EXISTS(SELECT 1 FROM SYSOBJECTS WHERE name='{0}' AND xtype='U')
SELECT * FROM {0}
ELSE
SELECT 1 WHERE 1<>1", tableName);
DataSet myds4 = new DataSet();
SqlDataAdapter myada4 = new SqlDataAdapter(sql, con);
myada4.Fill(myds4);
con.Close();
if (myds4.Tables.Count > 0 && myds4.Tables[0].Rows.Count > 0)
{
this.GridView1.DataSource = null;
this.GridView1.DataSource = myds4.Tables[0];
this.GridView1.DataBind();
}
else
{
Response.Write("");
}
if((int)cmd.executequary()==0){
。。。。。。
}else{
。。。。。。
}