你的插入语句不对啊,
string str1="insert into dl where NAME='"+txtname.Text+"'";
应该该为
string str1="insert into dl(name) value ('"+txtname.Text+"')";

解决方案 »

  1.   

    string str1="insert into dl (NAME) values ('"+txtname.Text+"')";
      

  2.   

    以这个代码为准!!!
    private void button1_Click(object sender, System.EventArgs e)
    {

        
        
    string str="select NAME from dl where NAME='"+txtname.Text+"'";
    string str1="insert into dl values('"+txtname.Text+"')";
    OleDbConnection conn=new OleDbConnection("Provider=MSDAORA;Password=zxm;User ID=Zxm;Data Source=zxm.acme.com");
    OleDbCommand comm=new OleDbCommand(str,conn);
    OleDbDataReader datareader=null;
    conn.Open();
    datareader=comm.ExecuteReader();



    if(datareader.Read()==true)
    {
    MessageBox.Show("用户名已存在,请重新选择");
    }
    else if(txtname.Text=="")
     {
     MessageBox.Show("姓名不能为空");  }
     else 
     {
         
    datareader.Close();
    int a=comm.ExecuteNonQuery();
    if(a>0)
    {
    DataSet dataset=new DataSet();

    OleDbDataAdapter adapter=new OleDbDataAdapter(str1,conn);
    adapter.Fill(dataset,"dl");
        DataTable datatable1=null;
    DataRow datarow1=null;
    datatable1=dataset.Tables["dl"];     
    datarow1=datatable1.NewRow();
    datarow1["NAME"]=txtname.Text;
    datatable1.Rows.Add(datarow1);
    }
    else
    {
    MessageBox.Show("插入不成功");
    }
    //OleDbDataAdapter adapter=new OleDbDataAdapter(str1,conn);
           //adapter.InsertCommand=new OleDbCommand(str1,conn);
    }

    conn.Close(); }
    }
    }
      

  3.   

    string str1="insert into dl values('"+txtname.Text+"')";
    ->
    string str1="insert into dl (NAME) values('"+txtname.Text+"')";