我想写一个简单的数据库语句解释程序,碰到点麻烦,卡住了.private void btn_CreatAccess_Click(object sender, EventArgs e)
{
   //创建数据库成功
}
private void btn_ConnAccess_Click(object sender, EventArgs e)
{
   //连接也成功
    myConn.Open();
}
private void btn_ExeAccess_Click(object sender, EventArgs e)//执行数据库语句
{
    string[] str_SQLs = txB_ExeAccess.Text.Trim().ToString().Split(' ');
    if (str_SQLs[0].ToUpper() == "SELECT")//如果是SELECT语句,返回结果到DataGridView
    {
        //翻了下csdn的旧帖,只找到个
         OleDbDataAdapter myOleDbDataAdapter = new OleDbDataAdapter(txB_ExeAccess.Text.Trim().ToString(), myConn);
        DataSet myDataSet = new DataSet();
        DataGridView myDataGridView = new DataGridView();
        myOleDbDataAdapter.Fill(myDataSet,"表名事先不知道怎么办?");  
        myDataGridView.DataSource = myDataSet.Tables[0].DefaultView ;        myDataGridView.Dock = DockStyle.Fill;
        splitContainer1.Panel2.Controls.Add(myDataGridView);
    }
}问题1:myOleDbDataAdapter.Fill(myDataSet,"表名事先不知道怎么办?"); 问题2:我是用第一个SQL命令字符串来判断是什么类型的命令,如:"CREATE","DROP","ALTER","INSERT","UPDATE","DELETE"
我看见有个OleDbCommand.CommandType=CommandType.StoredProcedure或CommandType.TableDirect或CommandType.Text查手册也没看懂干什么用的,能不能用这个方法来判断SQL语句类型啊?附加:对于所有其他类型的语句,返回值为 -1。如果发生回滚,返回值也为 -1。 
http://msdn.microsoft.com/zh-cn/library/system.data.sqlclient.sqlcommand.executenonquery(VS.80).aspx 
http://msdn.microsoft.com/en-us/library/system.data.oledb.oledbcommand.executenonquery.aspx 
返回的值为-1,那怎么判断创建表成功还是失败后的回滚?可能是我概念不清楚,这个没解决不要紧我有点落伍,还是C#2.0

解决方案 »

  1.   

    附加题是关于ExecuteNonQuery 的返回值问题.
      

  2.   

    1.可以不指定第二个参数.
    2.CommandType.StoredProcedure是制定存储过程?CommandType.Text指的是你使用的sql字符串
    3.想判断是"select"还是其他类型的加多个参数就行了.
      

  3.   

    问题1:表名参数可以不传。
    问题2:OleDbCommand.CommandType的分类跟你要判断的增删改查不一样。
    CommandType.StoredProcedure存储过程,CommandType.TableDirect表名访问,CommandType.Text SQL语句? 
      

  4.   

    1.第二个参数可以不指定,如要指定直接在填充dataset时,随意指定一个表名就行;
    2.无法判断用的是哪种语句,只能指定你使用的sql语句;
      

  5.   

    第一个问题是我太粗心了,以为在那里报错.上午没人回复真的有点孤独感,Thanks all of you .