一:
.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
.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
如果不用配置文件,直接这样://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遍了。
到底是哪里错 了呢?