A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 孟庆波 中级黑马   /  2012-4-17 18:24  /  3188 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

根据你数据库放的位置,然后进行路径转换,关键在与你数据库放的地方
C# 获取路径
string str1 =Process.GetCurrentProcess().MainModule.FileName;//获得当前执行的exe的文件名。
string str2=Environment.CurrentDirectory;//获取和设置当前目录的完全限定路径。
string str3=Directory.GetCurrentDirectory();//获取应用程序的当前工作目录。
string str4=AppDomain.CurrentDomain.BaseDirectory;//获取基目录,它由程序集冲突解决程序用来探测程序集。
string str5=Application.StartupPath;//获取启动了应用程序的可执行文件的路径,不包括可执行文件的名称。
string str6=Application.ExecutablePath;//获取启动了应用程序的可执行文件的路径,包括可执行文件的名称。
string str7=AppDomain.CurrentDomain.SetupInformation.ApplicationBase;//获取或设置包含该应用程序的目录的名称。
“Application.StartupPath”:获取当前应用程序所在目录的路径,最后不包含“\”;
“Application.ExecutablePath ”:获取当前应用程序文件的路径,包含文件的名称;
“AppDomain.CurrentDomain.BaseDirectory”:获取当前应用程序所在目录的路径,最后包含“\”;
“System.Threading.Thread.GetDomain().BaseDirectory”:获取当前应用程序所在目录的路径,最后包含“\”;
“Environment.CurrentDirectory”:获取当前应用程序的路径,最后不包含“\”;
“System.IO.Directory.GetCurrentDirectory”:获取当前应用程序的路径,最后不包含“\”;
你的程序如果是winform的,把你的数据库放在bin\debug目录下
Application.StartupPath+\\11.mdb
如果是web的,用这种方法转换路径
HttpContext.Current.Server.MapPath();
实例运用
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace _5
{
    public class connection
    {
        public static string connectingstring = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + System.AppDomain.CurrentDomain.BaseDirectory + @"database/student.mdb";
    }
}

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;
using System.Data.OleDb;
namespace _5
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        /// <summary>
        /// 数据的导入
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void button1_Click(object sender, EventArgs e)
        {
            try
            {
                using (FileStream filestream = new FileStream(@"student.txt", FileMode.Open, FileAccess.ReadWrite))
                {
                    //没有FileAccess.ReadWrite&&Encoding.Default 则汉字是乱码
                    using (StreamReader sr = new StreamReader(filestream, Encoding.Default))
                    {
                        using (OleDbConnection conn = new OleDbConnection(connection.connectingstring))
                        {
                            conn.Open();

                            using (OleDbCommand cmd = conn.CreateCommand())
                            {
                                string str = string.Empty;
                                while ((str = sr.ReadLine()) != null)
                                {
                                    string[] data = str.Split('|');
                                    cmd.CommandText = "INSERT INTO T_Students (name, age, score) VALUES (@name,@age,@score)";
                                    cmd.Parameters.Clear();
                                    cmd.Parameters.Add("@name", OleDbType.Char, 50).Value = data[0];
                                    cmd.Parameters.Add("@age", OleDbType.BigInt, 50).Value = data[1];
                                    cmd.Parameters.Add("@score", OleDbType.BigInt, 50).Value = data[2];
                                    cmd.ExecuteNonQuery();
                                }


                            }

                        }

                    }


                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }

        }
        /// <summary>
        /// 获得平均值
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void button2_Click(object sender, EventArgs e)
        {
            using (OleDbConnection conn = new OleDbConnection(connection.connectingstring))
            {
                conn.Open();
                try
                {
                    using (OleDbCommand cmd = conn.CreateCommand())
                    {
                        cmd.CommandText = "SELECT  AVG(score) FROM T_Students";
                        if (string.IsNullOrEmpty(cmd.ExecuteScalar().ToString()))
                        {
                            this.textBox1.Text = "无数据:" + "0";

                        }
                        else
                        {
                            this.textBox1.Text = cmd.ExecuteScalar().ToString().Substring(0, 6);
                        }
                    }

                }
                catch (Exception)
                {
                    conn.Close();
                    throw;
                }

            }
        }

        /// <summary>
        /// 检索信息
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void button3_Click(object sender, EventArgs e)
        {
            if (string.IsNullOrEmpty(this.txtScore.Text))
            {
                return;
            }
            using (OleDbConnection conn = new OleDbConnection(connection.connectingstring))
            {
                conn.Open();

                try
                {
                    using (OleDbCommand cmd = conn.CreateCommand())
                    {
                        cmd.CommandText = "SELECT name, score FROM T_Students WHERE score>=" + this.txtScore.Text + "";
                     
                        OleDbDataReader odr = cmd.ExecuteReader();
                        while (odr.Read())
                        {
                            this.textBox3.Text += "姓名:" + odr.GetString(0) + "  成绩:" + odr.GetInt32(1) + "\r\n";
                        }
                    }

                }
                catch (Exception)
                {
                    conn.Close();
                    throw;
                }

            }
        }
    }
}

评分

参与人数 1技术分 +3 收起 理由
宋天琪 + 3

查看全部评分

3 个回复

倒序浏览
access 数据库使用和sqlserver差不多
下面是一些语法:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace WindowsFormsApplication1
{
    using System.Data;
    using System.Data.OleDb;

    public class AccessHelp
    {
        // 连接数据源
        private OleDbConnection conn = null;
        /// <summary>
        /// 数据源
        /// </summary>
        /// <param name="conStr">数据源连接字符串</param>
        public OleDbConnection DataBase(string conStr)
        {
            conn = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+ conStr +";Jet OLEDB:System Database=system.mdw;");
            this.Open();
            return conn;
        }
        /// <summary>
        /// 根据SQL查询返回DataSet对象,如果没有查询到则返回NULL
        /// </summary>
        /// <param name="sql">查询语句</param>
        /// <returns>DataSet</returns>
        public DataSet GetDataSet(string sql)
        {
            DataSet ds = new DataSet();
            try
            {
                OleDbCommand cmd = new OleDbCommand(sql, conn);
                cmd.CommandTimeout = 20;
                System.Data.OleDb.OleDbDataAdapter adapter = new OleDbDataAdapter(cmd);
                adapter.Fill(ds, "tempTable");
            }
            catch (Exception e)
            {
                ds = null;
            }
            return ds;
        }
        /// <summary>
        /// 根据SQL查询返回DataSet对象,如果没有查询到则返回NULL
        /// </summary>
        /// <param name="sql">查询语句</param>
        /// <param name="sRecord">开始记录数</param>
        /// <param name="mRecord">最大记录数</param>
        /// <returns>DataSet</returns>
        public DataSet GetDataSet(string sql, int sRecord, int mRecord)
        {
            DataSet ds = new DataSet();
            try
            {
                OleDbCommand cmd = new OleDbCommand(sql, conn);
                cmd.CommandTimeout = 20;
                System.Data.OleDb.OleDbDataAdapter adapter = new OleDbDataAdapter(cmd);
                adapter.Fill(ds, sRecord, mRecord, "tempTable");
            }
            catch (Exception e)
            {
                ds = null;
            }
            return ds;
        }
        /// <summary>
        /// 对数据库的增,删,改的操作
        /// </summary>
        /// <param name="sql">SQL语句</param>
        /// <returns>是否成功</returns>
        public bool ExecuteDataBase(string sql)
        {
            bool succeed = false;
            int cnt = 0;
            try
            {
                OleDbCommand cmd = new OleDbCommand(sql, conn);
                cmd.CommandTimeout = 20;
                if (this.Open())
                    cnt = cmd.ExecuteNonQuery();
            }
            catch (Exception e)
            {
                e.ToString();
            }
            finally
            {
                if (cnt > 0)
                {
                    succeed = true;
                }
            }
            return succeed;
        }
        /// <summary>
        /// 获得该SQL查询返回的第一行第一列的值,如果没有查询到则返回NULL
        /// </summary>
        /// <param name="sql">查询语句</param>
        /// <returns>返回的第一行第一列的值</returns>
        public string GetScalar(string sql)
        {
            string str = null;
            try
            {
                OleDbCommand cmd = new OleDbCommand(sql, conn);
                if (this.Open())
                    str = cmd.ExecuteScalar().ToString();
            }
            catch (Exception e)
            {
                e.ToString();
            }
            return str;
        }

        /// <summary>
        ///  获得该SQL查询返回DataTable,如果没有查询到则返回NULL
        /// </summary>
        /// <param name="sql">查询语句</param>
        /// <returns></returns>
        public DataTable GetDataTable(string sql)
        {
            DataTable tb = null;
            DataSet ds = this.GetDataSet(sql);
            if (ds != null)
            {
                tb = ds.Tables["tempTable"];
            }
            return tb;
        }
        /// <summary>
        /// 打开数据库连接.
        /// </summary>
        private bool Open()
        {
            bool succeed = false;
            try
            {
                if (conn.State == System.Data.ConnectionState.Closed)
                {
                    conn.Open();
                    succeed = true;
                }
                else if (conn.State == System.Data.ConnectionState.Broken)
                {
                    conn.Close();
                    conn.Open();
                    succeed = true;
                }
                else if (conn.State == System.Data.ConnectionState.Open)
                {
                    succeed = true;
                }
            }
            catch (Exception e)
            {
                e.ToString();
            }

            return succeed;
        }
        /// <summary>
        /// 关闭数据库连接
        /// </summary>
        public void Close()
        {
            if (conn != null)
            {
                conn.Close();
            }
        }
        /// <summary>
        /// 释放数据库连接资源
        /// </summary>
        public void Dispose()
        {
            if (conn != null)
            {
                conn.Dispose();
                conn = null;
            }
        }
    }

}

评分

参与人数 1技术分 +2 收起 理由
宋天琪 + 2

查看全部评分

回复 使用道具 举报
孟庆波 发表于 2012-4-17 18:28
access 数据库使用和sqlserver差不多
下面是一些语法:
using System;

方法不错,顶一个!
回复 使用道具 举报
   cmd.Parameters.Clear();
这句话很重要,黑马资料详细的介绍

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马