Asp.net+Access数据库插入和修改问题
老大们帮帮忙啊查询,删除都可以
插入报错 报查询的数目和目标字段中的数目不同
下面是我的代码
protected void Button1_Click(object sender, EventArgs e)
{
RuimModel.News newsModel = new RuimModel.News();
RuimBll.News newsBll = new RuimBll.News();
string newsTitle = this.Title.Text.ToString ();
string newsType = this.newstype.Text;
string newsCentent = this.Content.Value;
newsModel.NewsTitle = newsTitle;
newsModel.NewsType = newstype.ToString();
newsModel.NewsContent = newsCentent.ToString();
newsModel.NewsTime = DateTime.Now;
if (newsBll.add(newsModel))
{
Response.Write("<script languge='javascript'>alert('添加成功!');window.location.href='Newslist.aspx';</script>");
}
else
{
Response.Write("<script languge='javascript'>alert('sorry,添加失败!')</script>");
}
}
public bool add(RuimModel.News newsModel)
{
string sql = "insert into News values(@NewsTitle,@NewsType,@NewsContent,@NewsTime)";
OleDbParameter[] parameter = new OleDbParameter[]
{
new OleDbParameter("@NewsTitle",newsModel.NewsTitle),
new OleDbParameter("@NewsType",newsModel.NewsType),
new OleDbParameter("@NewsContent",newsModel.NewsContent),
new OleDbParameter("@NewsTime",newsModel.NewsTime)
};
int num = OleDBHelper.ExecuteSql(sql, parameter);
if (num > 0)
{
newsModel.ID = num;
}
return num > 0 ? true : false;
}
--------------------编程问答-------------------- 查询,删除都可以
public static int ExecuteSql(string SQLString, params OleDbParameter[] cmdParms)
{
using (OleDbConnection connection = new OleDbConnection(connectionString))
{
using (OleDbCommand cmd = new OleDbCommand())
{
try
{
PrepareCommand(cmd, connection, null, SQLString, cmdParms);
int rows = cmd.ExecuteNonQuery();
cmd.Parameters.Clear();
return rows;
}
catch (System.Data.OleDb.OleDbException E)
{
throw new Exception(E.Message);
}
}
}
}
插入报错 报查询的数目和目标字段中的数目不同
------------------------
应该是语句的问题。 --------------------编程问答-------------------- string sql = "insert into News values(@NewsTitle,@NewsType,@NewsContent,@NewsTime)";
------------------------
news 是你要插入数据的表是吧。
这个样写, 倒是挺省事的,但是不利于以后修改。 --------------------编程问答-------------------- string sql = "insert into News values(@NewsTitle,@NewsType,@NewsContent,@NewsTime)";
还是没有看到问题。
把你 news表的 字段和类型 复制出来看看
string sql = "insert into News(xx,xx,xx) values(@NewsTitle,@NewsType,@NewsContent,@NewsTime)";
--------------------编程问答-------------------- string sql = "insert into News values(@NewsTitle,@NewsType,@NewsContent,@NewsTime)";
断点调试一下,到这个语句的时候,看看这个值多少,复制下来,在查询分析器中,运行一下,是否有问题 --------------------编程问答-------------------- 这是数据库news表
字段名称 类型
ID 自动编号
NewsTitle 文本
NewsType 文本
NewsContent 备注
NewsTime 日期/时间 --------------------编程问答-------------------- 这是News表
字段名称 数据类型
ID 自动编号
NewsTitle 文本
NewsType 文本
NewsContent 备注
NewsTime 日期/时间 --------------------编程问答-------------------- cmd.Parameters.Clear();
PrepareCommand(cmd, connection, null, SQLString, cmdParms);
int rows = cmd.ExecuteNonQuery();
--------------------编程问答-------------------- 当数据表里有自动编号类型的字段时,insert语句里values前面必须跟上字段名,否则在.net里会报错:
insert into TableName (字段1,字段2,...,字段n) values(字段1的值,字段2的值,...,字段n的值)
要这样写,其中自动编号类型的不用写参数。
补充:.NET技术 , ASP.NET