IErrorInfo.GetDescription 因 E_FAIL(0x80004005) 而失败

 OleDbDataAdapter Adapter = new OleDbDataAdapter("Select [Domain] From [SuffixDomain] Where [Domain]=@Domain", ConfigurationManager.ConnectionStrings["ConnString"].ConnectionString);


在SQl语句含有关键会出现 IErrorInfo.GetDescription 因 E_FAIL(0x80004005) 而失败。
如果是Select Sql 语句中, 只要 Select [field],....只可以了,如果是insert into  
OleDbCommandBuilder CommBuilder = new OleDbCommandBuilder(Adapter);
CommBuilder.QuotePrefix = "[";
CommBuilder.QuoteSuffix = "]";

代码:

 string strDomain = TxtDomain.Text;

            OleDbDataAdapter Adapter = new OleDbDataAdapter("Select [Domain] From [SuffixDomain] Where [Domain]=@Domain", ConfigurationManager.ConnectionStrings["ConnString"].ConnectionString);

            OleDbCommandBuilder CommBuilder = new OleDbCommandBuilder(Adapter);
            CommBuilder.QuotePrefix = "[";
            CommBuilder.QuoteSuffix = "]";

            OleDbParameter PDomain = new OleDbParameter("@Domain", OleDbType.VarChar, 100);
            PDomain.Value = strDomain;
            Adapter.SelectCommand.Parameters.Add(PDomain);
          
            DataSet ds = new DataSet();
            Adapter.Fill(ds, "dm");
            if (ds.Tables["dm"].Rows.Count <= 0)
            {
                DataRow dr = ds.Tables["dm"].NewRow();
                dr["Domain"] = strDomain;
                ds.Tables["dm"].Rows.Add(dr);
                Adapter.Update(ds, "dm");
            }
            else
                Response.Write("<Script>alert('" + strDomain + "已存在')</Script>");
            Adapter.SelectCommand.Connection.Close();

你可能感兴趣的:(sql,String,domain,insert,dataset)