一:
.config 文件:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <connectionStrings>
    <add name="MyConnect" connectionString="Data Source=.\SQLEXPRESS;
AttachDBFilename=|DataDirectory|\Test.mdf;
Integrated Security=True;User Instance=True"/>
  </connectionStrings>
</configuration>二:
Helper 类:using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.SqlClient;
using System.Configuration;namespace Test
{
    class Helper
    {
        //这里定义静态方法,通过配置文件连接SQL,执行ExecuteNonQuery.
        public static int ExecuteNonQuery(string Command, params SqlParameter[] sqlParameters)
        {
            //通过配置文件连接SQL.
            //总是这句报错Object reference not set to an instance of an object.
            string conStr = ConfigurationManager.ConnectionStrings["MyConnect"].ConnectionString;
            using (SqlConnection connect = new SqlConnection(conStr))
            {
                connect.Open();
                using (SqlCommand cmd = connect.CreateCommand())
                {
                    cmd.CommandText = Command;  //sql语句命令.
                    foreach (SqlParameter sqlParameter in sqlParameters)
                    {
                        cmd.Parameters.Add(sqlParameter);   //sql语句需的参数.
                    }
                    return cmd.ExecuteNonQuery();
                }
            }
        }
    }
}三:
带执行的类: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.Data.SqlClient;namespace Test
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }        private void button1_Click(object sender, EventArgs e)
        {
            //调用 Helper类的方法。
            int i = Helper.ExecuteNonQuery("insert into Test(UserName,Age) values(@UserName,@Age)", new SqlParameter("UserName", "李"), new SqlParameter("Age", 1));
        }
    }
}我的table Test在我的database Test.mdf,有自动增长的int Id,nvarchar的UserName,和 int的Age

解决方案 »

  1.   

    Helper 类中:
    如果不用配置文件,直接这样://string conStr = ConfigurationManager.ConnectionStrings["MyConnect"].ConnectionString;
                using (SqlConnection connect = new SqlConnection(@"Data Source=.\SQLEXPRESS;
    AttachDBFilename=|DataDirectory|\Test.mdf;
    Integrated Security=True;User Instance=True"))
    又没有问题,我就奇怪了!上次是我的配置文件语法有问题,可是这次,我都检查了 N遍了。
    到底是哪里错 了呢?
      

  2.   

    Helper类是在哪调用的?配置文件需要写在那个项目下
      

  3.   

    是在一个项目的呢!我开始想可能是都需要再同一个project中才能调用,我才删了原来的,新建新的!
      

  4.   

    配置文件不要重命名,直接用App.config
      

  5.   

    我把 database 名该 和 table 不一样,通过了,谢谢你哦!