返回信息流原来的数据库是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);
}
}
}
}
这是一条镜像帖。来源:北邮人论坛 / dot-net / #1830同步于 2010/5/23
该镜像源已超过 30 天没有更新,可能在源站已被删除。
dotNET机器人发帖
[求助]C#程序,数据库有Access转换成SQL2005,求帮忙改代码!
vv2008
2010/5/23镜像同步9 回复
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
【 在 wangjianzhou 的大作中提到: 】
: 同学,找本ADO.NET的非连接模式访问数据库学习一下,实在不会,我给你写。
您能把现在的代码帮我改一下吗?我急用!谢谢!
你的sql server配好了么?数据导过去了?
【 在 vv2008 (yu木木) 的大作中提到: 】
: 您能把现在的代码帮我改一下吗?我急用!谢谢!
感觉够呛。。哈哈。
oledb的全改成Sql就哦了。。
【 在 LostThePast (失落的过去) 的大作中提到: 】
: 你的sql server配好了么?数据导过去了?
1、在sqlserver建好表,配置链接
2、Ole*改成sql,数据访问接口基本一样,可以对照着改
3、修改查询语句,有些语句access和sqlserver是不一样的
ps:如果是交作业,不需要考虑实际是否能运行,简单ole-->Sql应该可以蒙混过关哈
【 在 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.
【 在 vv2008 的大作中提到: 】
:
: 【 在 wangjianzhou 的大作中提到: 】
: : 同学,找本ADO.NET的非连接模式访问数据库学习一下,实在不会,我给你写。
: ...................
没有测试,有什么毛病报上来
记得加引用。
using System.Data.SqlClient;
【 在 vv2008 (yu木木) 的大作中提到: 】
: 太感谢了!真的能运行呢!