sql中的代码:
insert into alive(uid,money,intime) values('10011','300',GETDATE())
但是我把这个代码用在了VS2013中运行后就提示约束冲突了
VS2013中的代码:
if(radioButton1.Checked==true)
{
conn.Open();
string insert = string.Format("insert into alive(uid,money,intime) values('{0}','{1}',GETDATE())", name, money);
SqlCommand cmd = new SqlCommand(insert, conn);
string select_money = string.Format("select money from detail where uid='{0}'", name);
SqlCommand cmd1 = new SqlCommand(select_money, conn);
object obj = cmd.ExecuteScalar();
if (obj != null)
{
this.textBox2.Text = obj.ToString();
}
conn.Close();
}
请问各位大神这是怎么回事???
3 个解决方案
#1
alive 表上有一个外键,某一列参考了 detail 这张表的 uid 字段;
并且,你刚刚 insert 的这条数据,没有在 detail 表中找到相应的记录;
你核对一下 ;
并且,你刚刚 insert 的这条数据,没有在 detail 表中找到相应的记录;
你核对一下 ;
#2
alive 表insert的udi的值:10011在表detail 中不存在,需要先在主表detail 中插入一个uid值为10011的数据.
#3
楼主的问题上面贴友都说清楚了, 不过还想补充一下:
如果希望数据迁移方便, 最好不要有显式的主外键关联(不要设置什么外键), 要不在数据迁移、归档这些方面会让你烦透的!
绝大多数公司都不会设置外键, 外键在心里。
如果希望数据迁移方便, 最好不要有显式的主外键关联(不要设置什么外键), 要不在数据迁移、归档这些方面会让你烦透的!
绝大多数公司都不会设置外键, 外键在心里。
#1
alive 表上有一个外键,某一列参考了 detail 这张表的 uid 字段;
并且,你刚刚 insert 的这条数据,没有在 detail 表中找到相应的记录;
你核对一下 ;
并且,你刚刚 insert 的这条数据,没有在 detail 表中找到相应的记录;
你核对一下 ;
#2
alive 表insert的udi的值:10011在表detail 中不存在,需要先在主表detail 中插入一个uid值为10011的数据.
#3
楼主的问题上面贴友都说清楚了, 不过还想补充一下:
如果希望数据迁移方便, 最好不要有显式的主外键关联(不要设置什么外键), 要不在数据迁移、归档这些方面会让你烦透的!
绝大多数公司都不会设置外键, 外键在心里。
如果希望数据迁移方便, 最好不要有显式的主外键关联(不要设置什么外键), 要不在数据迁移、归档这些方面会让你烦透的!
绝大多数公司都不会设置外键, 外键在心里。