为什么C#.net的Windows应用程序操作SQL Server2005会出现提示数据插入成功而并没有把数据插入到数据库中 ,为什么呢?
找了很多贴,都没有解决方法~~
这是插入操作:
/// <summary>
/// 借书函数
/// </summary>
/// <param name="o"></param>
/// <returns></returns>
public bool insertbook(StuBook o)//借书
{
try
{
db.StuBook.InsertOnSubmit (o);
db.SubmitChanges();
return true;
}
catch (SystemException )
{ return false; }
}
这是windows窗体调用这个函数:
private void btborrow_Click(object sender, EventArgs e)
{
loginuser user = new loginuser();
book boook = new book();
Stdmessge stu = new Stdmessge();
if (tbname.Text == "" || tbauthor.Text == "")
MessageBox.Show("书名和作者不能为空!", "提示", MessageBoxButtons.OKCancel , MessageBoxIcon.Exclamation);
else {
if (tbpsw.Text == "")
MessageBox.Show("密码不能为空!", "提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Error);
else {
stu=user.searchstu(tbid.Text.Trim (), tbpsw.Text.Trim());//确定是否存在该用户
if (stu != null)
{
if( (MessageBox.Show("确定要借书?", "提示", MessageBoxButtons.OKCancel) )== DialogResult.OK)
{
StuBook stb = new StuBook();
stb.BbolowDate = DateTime.Now.Date ;//借书时间
stb.BreturnDate = DateTime.Now.AddMonths(1);//归还时间
stb.SBname = tbname.Text.Trim();//书名
stb.SBauthor = tbauthor.Text.Trim();//作者
stb.SID = tbid.Text.Trim();//卡号
if (user.insertbook (stb))//插入
{ if (MessageBox.Show("已借图书:" + tbname.Text + "\n待归还日期:" + DateTime.Now.AddMonths(1).ToShortDateString () + "\n借书成功", "提示", MessageBoxButtons.OK) == DialogResult.OK) { tbauthor.Text = ""; tbname.Text = ""; } }
else MessageBox.Show("借书失败", "提示", MessageBoxButtons.OK);
}
}
}
}
}
数据不能插入到数据库中,这是为什么呢?但操作显示成功,这真怪了~纠结了好久了,已经尝试过断点调式了但是
[解决办法]
问题应该在这里,看看你的这个insertbook怎么写的,看看这里有没有问题,你这里执行成功才弹出插入成功,所以看看这里
if (user.insertbook (stb))//插入
{ if (MessageBox.Show("已借图书:" + tbname.Text + "\n待归还日期:" + DateTime.Now.AddMonths(1).ToShortDateString () + "\n借书成功", "提示", MessageBoxButtons.OK) == DialogResult.OK) { tbauthor.Text = ""; tbname.Text = ""; } }
[解决办法]
是否设置了主键
[解决办法]
代码真乱呀~~~~~~~~~~~
[解决办法]
我是这样的写的啊:ublic bool insertbook(StuBook o)//借书
{
try
{
db.StuBook.InsertOnSubmit (o);
db.SubmitChanges();
return true;
}
catch (SystemException )
{ return false; }
}
按道理没错啊晕了
[解决办法]
设了主键了啊
[解决办法]
设了 主键了啊!!!
问题应该在这里,看看你的这个insertbook怎么写的,看看这里有没有问题,你这里执行成功才弹出插入成功,所以看看这里
我是这样写的啊
public bool insertbook(StuBook o)//借书
{
try
{
db.StuBook.InsertOnSubmit (o);
db.SubmitChanges();
return true;
}
catch (SystemException )
{ return false; }
}
[解决办法]
先把你的try.....catch。注释了再调试,看看什么问题
[解决办法]
你确定返回的是true吗?