应该是你的ID没有初始化的原因~,其它不用那么复杂,你自己为那个添加一个递增ID列,那个问题就简单了,alter table 发言 add id int identity(1001,1)
以后插入的时候也不用管那个自增列.
以后插入的时候也不用管那个自增列.
解决方案 »
- “System.Web.UI.WebControls.LinkButton”并不包含“Location”的定义———这是什么错误??
- 请问如何将DataGridView控件 中的两个属性去掉!
- 咨询关于在C#.NET中存储日期格式问题,请高手帮助
- 请问VC6.0的socket方法转成C#的语法问题,请大家多多指点,解决立刻给分
- 如何在自定义控件的属性中(设计阶段)列举当前页上指定类型的控件id?
- 请高手指点:如何在VC中显示bvh文件?
- 在WEB服务的代理类中怎么处理异常,急在线等
- 遇到一个很急的问题大家快来帮帮忙谢谢
- A窗体如何调用B窗体中一个button的事件?最好有简单代码
- C#中获得时间的问题????
- ★DataAdapter 不能更新数据库
- sql server 语句请教
以后插入的时候也不用管那个自增列
我的id列已经付值了,数据库里有数据!
难道非得用添加一个递增ID列才行妈?
我实在看不出来有什么错误!是不是参数有问题,还是参数类型有问题?
long artid;
OleDbConnection conn = new OleDbConnection();
conn.ConnectionString = (ConfigurationManager.ConnectionStrings["ConnStr"]).ToString();
conn.Open();
OleDbCommand cmd = new OleDbCommand("select max(id) as aid from 发言", conn);
OleDbDataReader read = cmd.ExecuteReader(); read.Read();
if (read[0]==DBNull.Value)
artid = 1;
else artid =Convert.ToInt64( read[0].ToString()) + 1;
read.Close();
conn.Close();
conn.Open(); OleDbDataAdapter da = new OleDbDataAdapter();
da.InsertCommand = new OleDbCommand();
da.InsertCommand.CommandText = "insert into 发言(id,主题,作者,发表时间,内容) values(?,?,?,?,?)";
da.InsertCommand.Connection = conn;
da.InsertCommand.Parameters.Add("@id", OleDbType.BigInt);
da.InsertCommand.Parameters.Add("@zhuti", OleDbType.VarChar, 20);
da.InsertCommand.Parameters.Add("@zuozhe", OleDbType.VarChar, 20);
da.InsertCommand.Parameters.Add("@shijian",OleDbType.DBTimeStamp);
da.InsertCommand.Parameters.Add("@neirong", OleDbType.VarChar);
da.SelectCommand = new OleDbCommand();
da.SelectCommand.Connection = conn; da.SelectCommand.CommandText = "select * from 发言";
DataSet ds = new DataSet();
da.Fill(ds, "发言");
DataTable stut = ds.Tables["发言"];
DataRow stur = stut.NewRow();
stur["id"] = artid;
stur["主题"] = TextBox1.Text;
stur["作者"] = TextBox2.Text;
stur["发表时间"] = DateTime.Now.ToUniversalTime();
stur["内容"] = TextBox3.Text;
stut.Rows.Add(stur);
da.Update(ds, "发言");
连接数据库是没有问题的,只是插入的时候da.Update(ds, "发言");这句话老出错!参数 ?_1 没有默认值。