解决方案 »

  1.   

    最简单的做法就是在窗体二点击补办时,就调用数据库更新方法,把卡号更新掉,
    成功后直接关闭窗体二并返回新输入的卡号,存到输入卡号的TextBox中,并触发后面查询按钮事件即可。
    如果保存后不与数据库交互的话,直接将新的卡号更新到表格中卡号列即可。
      

  2.   


    我在窗体二的 补办 按钮中, 添加啦这样的代码 ,
            string constr = "server=.;database=data;Integrated Security=SSPI";
            private void button1_Click(object sender, EventArgs e)
            {
                if (txtban.Text != "")
                {                string mban;
                    mban = txtban.Text;
                    //创建数据库连接对象
                    SqlConnection mycomn = new SqlConnection(constr);
                    //创建数据库命令对象
                    string sqlstr = string.Format("insert into DuZheBiao(借读卡号) Values('{0}')", mban);
                    SqlCommand mycmd = new SqlCommand(sqlstr, mycomn);
                    mycomn.Open();
                    mycmd.ExecuteNonQuery();
                    mycomn.Close();
                    MessageBox.Show("该生的借读卡以补办成功!", "完成", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
                else
                {
                    MessageBox.Show("你输入的借读卡号为空!", "卡号为空值", MessageBoxButtons.OKCancel, MessageBoxIcon.Information);
                }
            }
    但是还是有错,现在小弟不会的是如何将 补办的解读卡号 直接存到数据库data 表为DuZheBiao当中的 借读卡 当中,为何进行更新呢?我这个代码为提示有错,请大神指点!谢谢!
      

  3.   


    我在窗体二的 补办 按钮中, 添加啦这样的代码 ,
            string constr = "server=.;database=data;Integrated Security=SSPI";
            private void button1_Click(object sender, EventArgs e)
            {
                if (txtban.Text != "")
                {                string mban;
                    mban = txtban.Text;
                    //创建数据库连接对象
                    SqlConnection mycomn = new SqlConnection(constr);
                    //创建数据库命令对象
                    string sqlstr = string.Format("insert into DuZheBiao(借读卡号) Values('{0}')", mban);
                    SqlCommand mycmd = new SqlCommand(sqlstr, mycomn);
                    mycomn.Open();
                    mycmd.ExecuteNonQuery();
                    mycomn.Close();
                    MessageBox.Show("该生的借读卡以补办成功!", "完成", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
                else
                {
                    MessageBox.Show("你输入的借读卡号为空!", "卡号为空值", MessageBoxButtons.OKCancel, MessageBoxIcon.Information);
                }
            }

    你上面的代码报的什么错?Integrated Security=SSPI 这个表示以当前WINDOWS系统用户身去登录SQL SERVER服务器,如果SQL SERVER服务器不支持这种方式登录时,就会出错。 
    你可以使用SQL SERVER的用户名和密码进行登录,如: 
    "Provider=SQLOLEDB.1;Persist Security Info=False;Initial Catalog=数据库名;Data Source=192.168.0.1;User ID=sa;Password=密码"
      

  4.   

    1 窗口二就设计成一个模式窗体,提供输入,更新数据库的逻辑放在主窗体。
    2 按照你的说法应该是更新数据库,不应该是插入新的记录。如果是插入,你的数据库表是不是只用提交这个字段就可以了,其他的都设置成null了,或者有默认值,主键自增长?
    3 把报错信息的那几行截图过来看看。
      

  5.   

    大神们请看错误我自己感觉我这个代码十分不对的,我原本的思路是这样的 我想在窗体一中的dataGridView某中的某一个读者的信息进行借读卡补办,系统会弹出一个窗体让用户输入要补办的借读卡号,然后将读者原本的借读卡号更新!
    如果我现在的方法不对,请大神们指点谢谢!
      

  6.   

    思路:你应该输入原始卡号,查询出原卡信息来。并将原始卡号保存下来。
    你补卡并不是去执行Insert新增卡,而只是用现有卡去替换原始卡号而已,对不对?
    那么你应该以原始卡号为条件,去更新原卡记录中的卡号!
    Update CardId = newCarId from TableName where CardId = oldCardId。
    最后关闭窗体二时,省事就直接用新卡号替换卡号控件中的卡号,执行查询事件;
    不想查询的话,直接将新卡号替换列表中的卡号列即可。
    看的懂吗?