标题:C#和access插入操作
只看楼主
sgrrzbc
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2010-8-14
结帖率:66.67%
已结贴  问题点数:10 回复次数:2 
C#和access插入操作
using System;
using System.Collections.Generic;
using
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.OleDb;

namespace 试验2
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {}
            public OleDbConnection getConn()
{
string connstr=@"Provider=Microsoft.Jet.OLEDB.4.0 ;Data Source=D:\项目\医院信息.mdb";
                OleDbConnection tempconn= new OleDbConnection(connstr);
return(tempconn);
}
public DataView get医院名称()
{
DataView dataview;
System.Data.DataSet mydataset; //定义DataSet

try
{
OleDbConnection conn = getConn(); //getConn():得到连接对象
OleDbDataAdapter adapter = new OleDbDataAdapter();
string sqlstr="select * from 医院信息";
mydataset= new System.Data.DataSet();
adapter.SelectCommand = new OleDbCommand(sqlstr, conn);
adapter.Fill(mydataset,"notes");
conn.Close();
}
catch(Exception e)
{
throw(new Exception("数据库出错:" + e.Message)) ;
}
dataview = new DataView(mydataset.Tables["notes"]);
return(dataview);
}
        public Boolean Add医院信息(string  医院信息)
{

Boolean tempvalue=false; //定义返回值,并设置初值
//下面把note中的数据添加到数据库中!
try{

OleDbConnection conn = getConn(); //getConn():得到连接对象
conn.Open();

//设置SQL语句
string insertstr="INSERT INTO 医院信息(医院名称, 医院地址, 邮编, 联系电话, 医院级别 ) VALUES ('";
insertstr += 医院信息.医院名称 +"', '";
insertstr += 医院信息.医院地址 + "','";
insertstr += 医院信息.邮编 + "','";
insertstr += 医院信息.联系电话 + "','";
insertstr += 医院信息.医院级别 + "')";


OleDbCommand insertcmd = new OleDbCommand(insertstr,conn) ;
insertcmd.ExecuteNonQuery() ;

conn.Close();
tempvalue=true;
}
catch(Exception e)
{
throw(new Exception("数据库出错:" + e.Message)) ;
}
return(tempvalue);
}
     }
}

医院信息.医院地址,那几行总是报错,请大家看看这代码还有什么别的问题吗?能否执行插入,并储存在后台数据库的操作,还有什么需要添加的,希望各位大虾帮忙啊。(医院名称,医院地址,邮编,联系电话,填表日期——这几项是我access表头)



            
       错误    1    “string”不包含“医院名称”的定义,并且找不到可接受类型为“string”的第一个参数的扩展方法“医院名称”(是否缺少 using 指令或程序集引用?)   

[ 本帖最后由 sgrrzbc 于 2010-9-19 20:46 编辑 ]
搜索更多相关主题的帖子: access 
2010-09-19 18:09
bygg
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:乖乖的心中
等 级:版主
威 望:241
帖 子:13555
专家分:3076
注 册:2006-10-23
得分:0 
提示什么错??
设置个断点,看看insertstr是什么。

飘过~~
2010-09-19 18:16
c1_wangyf
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:7
帖 子:665
专家分:2832
注 册:2010-5-24
得分:10 
首先,你的数据库是否是打开的?你最好先查看一下:if(conn.state==ConnectionState.Closed)
{conn.open();}
然后再进行你的插入操作,这里也是建议你使用这种方法,也是我在网上看到的,比较容易看出哪里出现问题:
string insertstr="INSERT INTO 医院信息(医院名称, 医院地址, 邮编, 联系电话, 医院级别 ) VALUES (@医院名称,@医院地址, @邮编, @联系电话, @医院级别);
下面把@Dep,@T,@R换成@医院名称,@医院地址, @邮编, 不足的一定要加上,类型也得也要改了啊!!
                            mycom.Parameters.Add(new OleDbParameter("@Dep", OleDbType.Single, 10));
                            mycom.Parameters.Add(new OleDbParameter("@T", OleDbType.Single, 10));
                            mycom.Parameters.Add(new OleDbParameter("@R", OleDbType.Single, 10));
这里把你需要添加的都添加上,然后在下面赋值里面赋上正确的值。
                           mycom.Parameters["@Dep"].Value = depthmdv;
                            mycom.Parameters["@T"].Value = tvdv;
                            mycom.Parameters["@R"].Value = ropv;
最后再执行mycom.ExecuteNonQuery();

看看行不行吧
2010-09-20 16:33



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-320911-1-1.html




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

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