| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 948 人关注过本帖
标题:[求助]数据修改问题
只看楼主 加入收藏
coolfaith
Rank: 1
等 级:新手上路
帖 子:194
专家分:0
注 册:2006-4-25
收藏
得分:0 
现在就是SqlType有问题了
ACCESS里用OledbType
那Sql呢?不是SqlType吗?

2006-08-08 16:11
chenjin145
Rank: 1
等 级:禁止访问
帖 子:3922
专家分:0
注 册:2006-7-12
收藏
得分:0 
SqlDbType

[url=javascript:alert(1);] [div]fdgfdgfdg\" on\"[/div] [/url]
2006-08-08 16:14
coolfaith
Rank: 1
等 级:新手上路
帖 子:194
专家分:0
注 册:2006-4-25
收藏
得分:0 
现在剩最后一个了SqlConnection con=new SqlCon(Main.constr).GetCon();
“学生管理系统.Main”并不包含对“constr”的定义
我添加了个类有包含constr,
不知道在窗体上怎么引用

2006-08-08 16:21
marer
Rank: 2
等 级:新手上路
威 望:3
帖 子:928
专家分:0
注 册:2005-7-18
收藏
得分:0 
以下是引用coolfaith在2006-8-8 15:21:19的发言:
private void btnUpdate_Click(object sender, System.EventArgs e)
{
SqlConnection thisConnection=new SqlConnection(@"Data Source=(local);Integrated Security=SSPI;"+"Initial Catalog=student");
thisConnection.Open();//连接数据库
SqlDataAdapter da=new SqlDataAdapter();

DataTable dt=new DataTable();
da.Fill(dt);
this.dataGrid1.DataSource=dt;
DataRow[] rr=dt.Select("","",DataViewRowState.ModifiedCurrent);
if(rr==null || rr.Length<=0)
{
MessageBox.Show("没有需要更改的数据!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information);
return;
}
SqlConnection con=new SqlCon(Main.constr).GetCon();
SqlCommand cmd=new SqlCommand();
cmd.Connection=con;
cmd.CommandText="update Test set [学号]=?,[姓名]=?,[性别]=?,[出生日期]=?,[籍贯]=?,[政治面貌]=?,[民族]=?,[毕业时间]=?,[就业情况]=?,[就业单位]=?where[学号]=?and[姓名]=?and[性别]=?and[出生日期]=?and[籍贯]=?and[政治面貌]=?and[民族]=?and[毕业时间]=?and[就业情况]=?and[就业单位]=?";
cmd.Parameters.Add("new学号",SqlType.Char,50,"学号");
cmd.Parameters.Add("new姓名",SqlType.Char,50,"姓名");
cmd.Parameters.Add("new性别",SqlType.Char,2,"性别");
cmd.Parameters.Add("new出生日期",SqlType.Char,100,"出生日期");
cmd.Parameters.Add("new籍贯",SqlType.Char,50,"籍贯");
cmd.Parameters.Add("new政治面貌",SqlType.Char,50,"政治面貌");
cmd.Parameters.Add("new民族",SqlType.Char,2,"民族");
cmd.Parameters.Add("new毕业时间",SqlType.Char,100,"毕业时间");
cmd.Parameters.Add("new就业情况",SqlType.Char,2,"就业情况");
cmd.Parameters.Add("new就业单位",SqlType.Char,100,"就业单位");
para.SourceVersion=DataRowVersion.Original;
para=cmd.Parameters.Add("old学号",SqlType.Char,50,"学号");
para.SourceVersion=DataRowVersion.Original;
para=cmd.Parameters.Add("old姓名",SqlType.Char,50,"姓名");
para.SourceVersion=DataRowVersion.Original;
para=cmd.Parameters.Add("old性别",SqlType.Char,2,"性别");
para.SourceVersion=DataRowVersion.Original;
para=cmd.Parameters.Add("old出生日期",SqlType.Char,100,"出生日期");
para.SourceVersion=DataRowVersion.Original;
para=cmd.Parameters.Add("old籍贯",SqlType.Char,50,"籍贯");
para.SourceVersion=DataRowVersion.Original;
para=cmd.Parameters.Add("old政治面貌",SqlType.Char,50,"政治面貌");
para.SourceVersion=DataRowVersion.Original;
para=cmd.Parameters.Add("old民族",SqlType.Char,2,"民族");
para.SourceVersion=DataRowVersion.Original;
para=cmd.Parameters.Add("old毕业时间",SqlType.Char,100,"毕业时间");
para.SourceVersion=DataRowVersion.Original;
para=cmd.Parameters.Add("old就业情况",SqlType.Char,2,"就业情况");
para.SourceVersion=DataRowVersion.Original;
para=cmd.Parameters.Add("old就业单位",SqlType.Char,100,"就业单位");
para.SourceVersion=DataRowVersion.Original;
SqlDataAdapter dv=new SqlDataAdapter();
dv.UpdateCommand=cmd;
try
{
da.Update(dt.Select("","",DataViewRowState.ModifiedCurrent));
}
catch(SqlException er)
{
MessageBox.Show(er.Message,"错误",MessageBoxButtons.OK,MessageBoxIcon.Error);
return;
}
MessageBox.Show("已成功修改数据!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information);

}

我好笨啊,套用都不会用啊
红色的出错,救命啊

大侠!!!原代码中的DBCon是我自己写的类,难道你没有在代码中看到吗?那个不能改的.

你写的SqlType不对,根本没有这个类,应该写成:SqlDbType

而para变量你压根儿就没有声明啊,加上这句:SqlParameter para=cmd.Parameters.Add(....);就可以用了


public class 人生历程 extends Thread{public void run(){while(true){努力,努力,再努力!!;Thread.sleep(0);}}}
2006-08-09 00:43
marer
Rank: 2
等 级:新手上路
威 望:3
帖 子:928
专家分:0
注 册:2005-7-18
收藏
得分:0 
以下是引用coolfaith在2006-8-8 16:21:49的发言:
现在剩最后一个了SqlConnection con=new SqlCon(Main.constr).GetCon();
“学生管理系统.Main”并不包含对“constr”的定义
我添加了个类有包含constr,
不知道在窗体上怎么引用

在你写的Main类中(应该是个窗体吧),声明一下constr这个变量就行了,而且要声明成静态的.如下:

private static string constr="............";


public class 人生历程 extends Thread{public void run(){while(true){努力,努力,再努力!!;Thread.sleep(0);}}}
2006-08-09 00:45
coolfaith
Rank: 1
等 级:新手上路
帖 子:194
专家分:0
注 册:2006-4-25
收藏
得分:0 
代码上是没问题,但是修改后总是提示没有需要更改的数据
怎么办啊

2006-08-09 10:58
coolfaith
Rank: 1
等 级:新手上路
帖 子:194
专家分:0
注 册:2006-4-25
收藏
得分:0 

private void btnUpdate_Click(object sender, System.EventArgs e)
{
DataRow[] rr=dt.Select("","",DataViewRowState.ModifiedCurrent);
if(rr==null || rr.Length<=0)
{
MessageBox.Show("没有需要更改的数据!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information);
return;
}
SqlConnection con=new SqlCon(Main.constr).GetCon();
SqlCommand cmd=new SqlCommand();
cmd.Connection=con;
cmd.CommandText="update 档案 set [ID]=? [学号]=?,[姓名]=?,[性别]=?,[出生日期]=?,[籍贯]=?,[政治面貌]=?,[民族]=?,[毕业时间]=?,[就业情况]=?,[就业单位]=? where [ID]=? and [学号]=? and [姓名]=? and [性别]=? and [出生日期]=? and [籍贯]=? and [政治面貌]=? and [民族]=? and [毕业时间]=? and [就业情况]=? and [就业单位]=?";
cmd.Parameters.Add("newid",SqlDbType.Char ,50,"ID");
cmd.Parameters.Add("new学号",SqlDbType.Char ,50,"学号");
cmd.Parameters.Add("new姓名",SqlDbType.Char,50,"姓名");
cmd.Parameters.Add("new性别",SqlDbType.Char,2,"性别");
cmd.Parameters.Add("new出生日期",SqlDbType.Char,10,"出生日期");
cmd.Parameters.Add("new籍贯",SqlDbType.Char,20,"籍贯");
cmd.Parameters.Add("new政治面貌",SqlDbType.Char,50,"政治面貌");
cmd.Parameters.Add("new民族",SqlDbType.Char,2,"民族");
cmd.Parameters.Add("new毕业时间",SqlDbType.Char,100,"毕业时间");
cmd.Parameters.Add("new就业情况",SqlDbType.Char,2,"就业情况");
cmd.Parameters.Add("new就业单位",SqlDbType.Char,100,"就业单位");

SqlParameter para=cmd.Parameters.Add("oldid",SqlDbType.Char,50,"ID");
para.SourceVersion=DataRowVersion.Original;
para=cmd.Parameters.Add("old学号",SqlDbType.Char,50,"学号");
para.SourceVersion=DataRowVersion.Original;
para=cmd.Parameters.Add("old姓名",SqlDbType.Char,50,"姓名");
para.SourceVersion=DataRowVersion.Original;
para=cmd.Parameters.Add("old性别",SqlDbType.Char,2,"性别");
para.SourceVersion=DataRowVersion.Original;
para=cmd.Parameters.Add("old出生日期",SqlDbType.Char,10,"出生日期");
para.SourceVersion=DataRowVersion.Original;
para=cmd.Parameters.Add("old籍贯",SqlDbType.Char,20,"籍贯");
para.SourceVersion=DataRowVersion.Original;
para=cmd.Parameters.Add("old政治面貌",SqlDbType.Char,50,"政治面貌");
para.SourceVersion=DataRowVersion.Original;
para=cmd.Parameters.Add("old民族",SqlDbType.Char,2,"民族");
para.SourceVersion=DataRowVersion.Original;
para=cmd.Parameters.Add("old毕业时间",SqlDbType.Char,100,"毕业时间");
para.SourceVersion=DataRowVersion.Original;
para=cmd.Parameters.Add("old就业情况",SqlDbType.Char,2,"就业情况");
para.SourceVersion=DataRowVersion.Original;
para=cmd.Parameters.Add("old就业单位",SqlDbType.Char,100,"就业单位");
para.SourceVersion=DataRowVersion.Original;
SqlDataAdapter dv=new SqlDataAdapter();
dv.UpdateCommand=cmd;
try
{
dv.Update(dt.Select("","",DataViewRowState.ModifiedCurrent));
}
catch(SqlException er)
{
MessageBox.Show(er.Message,"错误",MessageBoxButtons.OK,MessageBoxIcon.Error);
return;
}
MessageBox.Show("已成功修改数据!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information);

}

编译没问题,就是在修改的时候老是提示‘newid’附近有语法错误,
各位高手帮忙看下


2006-08-09 12:07
marer
Rank: 2
等 级:新手上路
威 望:3
帖 子:928
专家分:0
注 册:2005-7-18
收藏
得分:0 
真被你打败了!!!!

你现在用的是SQL,SQL里的SQL语句不可以像Access中那么写!应该写成如下样子:

cmd.CommandText="update Test set [ID]=@newid,[Name]=@newname,Sex=@newsex where [ID]=@oldid and [Name]=@oldname and Sex=@oldsex";
参数要写成:

cmd.Parameters.Add("@newid",SqlDbType.Char,50,"ID");

public class 人生历程 extends Thread{public void run(){while(true){努力,努力,再努力!!;Thread.sleep(0);}}}
2006-08-09 12:22
coolfaith
Rank: 1
等 级:新手上路
帖 子:194
专家分:0
注 册:2006-4-25
收藏
得分:0 
为什么只有ID和Name才有[]啊,

2006-08-09 12:25
coolfaith
Rank: 1
等 级:新手上路
帖 子:194
专家分:0
注 册:2006-4-25
收藏
得分:0 

private void btnUpdate_Click(object sender, System.EventArgs e)
{
DataRow[] rr=dt.Select("","",DataViewRowState.ModifiedCurrent);
if(rr==null || rr.Length<=0)
{
MessageBox.Show("没有需要更改的数据!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information);
return;
}
SqlConnection con=new SqlCon(Main.constr).GetCon();
SqlCommand cmd=new SqlCommand();
cmd.Connection=con;
cmd.CommandText="update 档案 set [ID]=@newid,[学号]=@new学号,[姓名]=@new姓名,[性别]=@new性别,[出生日期]=@new出生日期,[籍贯]=@new籍贯,[政治面貌]=@new政治面貌,[民族]=@new民族,[毕业时间]=@new毕业时间,[就业情况]=@new就业情况,[就业单位]=@new就业单位 where [ID]=@oldid and [学号]=@old学号 and [姓名]=@old姓名 and [性别]=@old性别 and [出生日期]=@old出生日期 and [籍贯]=@old籍贯 and [政治面貌]=@old政治面貌 and [民族]=@old民族 and [毕业时间]=@old毕业时间 and [就业情况]=@old就业情况 and [就业单位]=@old就业单位";
cmd.Parameters.Add("@newid",SqlDbType.Char ,50,"ID");
cmd.Parameters.Add("@new学号",SqlDbType.Char ,50,"学号");
cmd.Parameters.Add("@new姓名",SqlDbType.Char,50,"姓名");
cmd.Parameters.Add("@new性别",SqlDbType.Char,2,"性别");
cmd.Parameters.Add("@new出生日期",SqlDbType.Char,10,"出生日期");
cmd.Parameters.Add("@new籍贯",SqlDbType.Char,20,"籍贯");
cmd.Parameters.Add("@new政治面貌",SqlDbType.Char,50,"政治面貌");
cmd.Parameters.Add("@new民族",SqlDbType.Char,2,"民族");
cmd.Parameters.Add("@new毕业时间",SqlDbType.Char,100,"毕业时间");
cmd.Parameters.Add("@new就业情况",SqlDbType.Char,2,"就业情况");
cmd.Parameters.Add("@new就业单位",SqlDbType.Char,100,"就业单位");

SqlParameter para=cmd.Parameters.Add("@oldid",SqlDbType.Char,50,"ID");
para.SourceVersion=DataRowVersion.Original;
para=cmd.Parameters.Add("@old学号",SqlDbType.Char,50,"学号");
para.SourceVersion=DataRowVersion.Original;
para=cmd.Parameters.Add("@old姓名",SqlDbType.Char,50,"姓名");
para.SourceVersion=DataRowVersion.Original;
para=cmd.Parameters.Add("@old性别",SqlDbType.Char,2,"性别");
para.SourceVersion=DataRowVersion.Original;
para=cmd.Parameters.Add("@old出生日期",SqlDbType.Char,10,"出生日期");
para.SourceVersion=DataRowVersion.Original;
para=cmd.Parameters.Add("@old籍贯",SqlDbType.Char,20,"籍贯");
para.SourceVersion=DataRowVersion.Original;
para=cmd.Parameters.Add("@old政治面貌",SqlDbType.Char,50,"政治面貌");
para.SourceVersion=DataRowVersion.Original;
para=cmd.Parameters.Add("@old民族",SqlDbType.Char,2,"民族");
para.SourceVersion=DataRowVersion.Original;
para=cmd.Parameters.Add("@old毕业时间",SqlDbType.Char,100,"毕业时间");
para.SourceVersion=DataRowVersion.Original;
para=cmd.Parameters.Add("@old就业情况",SqlDbType.Char,2,"就业情况");
para.SourceVersion=DataRowVersion.Original;
para=cmd.Parameters.Add("@old就业单位",SqlDbType.Char,100,"就业单位");
para.SourceVersion=DataRowVersion.Original;
SqlDataAdapter da=new SqlDataAdapter();
da.UpdateCommand=cmd;
try
{
da.Update(dt.Select("","",DataViewRowState.ModifiedCurrent));
}
catch(SqlException er)
{
MessageBox.Show(er.Message,"错误",MessageBoxButtons.OK,MessageBoxIcon.Error);
return;
}
MessageBox.Show("已成功修改数据!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information);

}
还是出问题啊


2006-08-09 12:53
快速回复:[求助]数据修改问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017242 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved