BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / dot-net / #1830同步于 2010/5/23
该镜像源已超过 30 天没有更新,可能在源站已被删除。
dotNET机器人发帖

[求助]C#程序,数据库有Access转换成SQL2005,求帮忙改代码!

vv2008
2010/5/23镜像同步9 回复
原来的数据库是Access的,想修改成SQL2005的,紧急求助!! 求助帮忙修改代码。 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; namespace financial_system { public partial class Form_Budget : Form { public Form_Budget() { InitializeComponent(); } private void Form_Budget_Load(object sender, System.EventArgs e) { try { ds_Budget = new System.Data.DataSet(); ada_Budget = new System.Data.OleDb.OleDbDataAdapter("select * from 预算表", Form_Main.m_sqlConn); ada_Budget.Fill(ds_Budget, "预算表"); dg_Budget.DataSource = ds_Budget; dg_Budget.DataMember = "预算表"; } catch (OleDbException ex) { MessageBox.Show(ex.Message); } } private void button_Add_Click(object sender, System.EventArgs e) { string strComm = string.Format("insert into 预算表 values ('{0}', '{1}', '{2}', {3}, '{4}')", cb_Month.Text, cb_Type.Text, dtp_Date.Text, tb_Sum.Text, tb_Mark.Text); System.Data.OleDb.OleDbCommand comm = new System.Data.OleDb.OleDbCommand(strComm, Form_Main.m_sqlConn); try { ds_Budget.Clear(); comm.ExecuteNonQuery(); ada_Budget.Fill(ds_Budget, "预算表"); } catch (OleDbException ex) { MessageBox.Show(ex.Message); } } } }
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
wangjianzhou机器人#1 · 2010/5/23
同学,找本ADO.NET的非连接模式访问数据库学习一下,实在不会,我给你写。
vv2008机器人#2 · 2010/5/23
【 在 wangjianzhou 的大作中提到: 】 : 同学,找本ADO.NET的非连接模式访问数据库学习一下,实在不会,我给你写。 您能把现在的代码帮我改一下吗?我急用!谢谢!
LostThePast机器人#3 · 2010/5/24
你的sql server配好了么?数据导过去了? 【 在 vv2008 (yu木木) 的大作中提到: 】 : 您能把现在的代码帮我改一下吗?我急用!谢谢!
graceman机器人#4 · 2010/5/24
感觉够呛。。哈哈。 oledb的全改成Sql就哦了。。 【 在 LostThePast (失落的过去) 的大作中提到: 】 : 你的sql server配好了么?数据导过去了?
ahomer机器人#5 · 2010/5/24
1、在sqlserver建好表,配置链接 2、Ole*改成sql,数据访问接口基本一样,可以对照着改 3、修改查询语句,有些语句access和sqlserver是不一样的 ps:如果是交作业,不需要考虑实际是否能运行,简单ole-->Sql应该可以蒙混过关哈
wangjianzhou机器人#6 · 2010/5/24
【 在 vv2008 的大作中提到: 】 : : 【 在 wangjianzhou 的大作中提到: 】 : : 同学,找本ADO.NET的非连接模式访问数据库学习一下,实在不会,我给你写。 : ................... namespace financial_system { public partial class Form_Budget : Form { SqlConnection con=new SqlConnection(Form_Main.m_sqlConn);//定义连接对象,假定Form_Main.m_sqlConn是你的连接字符串 public Form_Budget() { InitializeComponent(); } private void Form_Budget_Load(object sender, System.EventArgs e) { DataSet ds_Budget =new DateSet(); SqlDataAdpater da_Budget=new SqlDataAdpatera("select * from 预算表", con); using(con) { con.Open();//打开数据库连接 ada_Budget.Fill(ds_Budget, "预算表");//前边形式都一样,就是数据访问接口和类从OleDB换成ADO.NET } dg_Budget.DataSource = ds_Budget.Tables["预算表"];//后边数据绑定稍有不同 dg_Budget.DataBind(); } private void button_Add_Click(object sender, System.EventArgs e) { string strComm = string.Format("insert into 预算表 values ('{0}', '{1}', '{2}', {3}, '{4}')", cb_Month.Text, cb_Type.Text, dtp_Date.Text, tb_Sum.Text, tb_Mark.Text); SqlCommand cmd= new SqlComnand(strComm, con); using(con) { con.Open(); ds_Budget.Clear(); cmd.ExecuteNonQuery(); ada_Budget.Fill(ds_Budget, "预算表"); } } } } 上边这个是显式创建SqlConnection ,在发生错误或者不用的时候关闭它,SqlDataAdpater本身自带有创建连接并打开数据库的功能,而Fill()方法在执行完会自动关闭数据库连接,你前边只是单纯的填充表,没有执行其它操作,所以简单一些,你并不用显式定义连接,可以这如下: private void Form_Budget_Load(object sender, System.EventArgs e) { DataSet ds_Budget =new DateSet(); SqlDataAdpater da_Budget=new SqlDataAdpatera("select * from 预算表", Form_Main.m_sqlConn); ada_Budget.Fill(ds_Budget, "预算表");//前边形式都一样,就是数据访问接口和类从OleDB换成ADO.NET dg_Budget.DataSource = ds_Budget.Tables["预算表"];//后边数据绑定稍有不同 dg_Budget.DataBind(); } 注意加入命名空间:System.Data.SqlClient.
wangjianzhou机器人#7 · 2010/5/24
【 在 vv2008 的大作中提到: 】 : : 【 在 wangjianzhou 的大作中提到: 】 : : 同学,找本ADO.NET的非连接模式访问数据库学习一下,实在不会,我给你写。 : ................... 没有测试,有什么毛病报上来
vv2008机器人#8 · 2010/5/24
【 在 wangjianzhou 的大作中提到: 】 : 没有测试,有什么毛病报上来 太感谢了!真的能运行呢!
rainblue机器人#9 · 2010/5/26
记得加引用。 using System.Data.SqlClient; 【 在 vv2008 (yu木木) 的大作中提到: 】 : 太感谢了!真的能运行呢!