using System;
using System.Collections.Generic;
using System.Text;
using System.Data.SqlClient;
using System.Data;
using System.Configuration;
using BookShop.Models;
namespace BookShop.DAL
{
public class DBHelp
{
public static SqlConnection connection;
public static SqlConnection Connection
{
get
{
string connectionString = ConfigurationManager.ConnectionStrings["mybookshop"].ConnectionString;
if (connection == null)
{
connection = new SqlConnection(connectionString);
connection.Open();
}
else if (connection.State == System.Data.ConnectionState.Closed)
{
connection = new SqlConnection(connectionString);
connection.Open();
}
else if (connection.State == System.Data.ConnectionState.Broken)
{
connection.Close();
connection.Open();
}
return connection;
}
}
public static DataSet Query(string sql)
{
DataSet ds = new DataSet();
try
{
SqlCommand com = new SqlCommand(sql, Connection);
SqlDataAdapter dmp = new SqlDataAdapter(com);
dmp.Fill(ds);
}
catch (System.Data.SqlClient.SqlException ex)
{
throw new Exception(ex.Message);
}
finally
{
Connection.Close();
}
return ds;
} #region 增,删,改ExecuteNonQuery
/// <summary>
/// 单个数据增,删,改
/// </summary>
/// <param name="safeSql"></param>
/// <returns></returns>
public static int ExecuteCommand(string safeSql)
{
try
{
using (SqlCommand cmd = new SqlCommand(safeSql, Connection))
{
int result = cmd.ExecuteNonQuery();
return result;
} }
catch (SqlException ex)
{ throw ex;
}
}
#endregion } }下面执行的时候,有的时候循环会中断,日志里面记录应该是
查询到数据0.000
查询到数据0.001
查询到数据0.000
查询到数据0.001
查询到数据0.000
........
........
查询到数据0.001
查询到数据0.000到这里停在这里了,再也不往下写了,程序就死在这里,到底是什么问题呀. public DataSet dscommand = new DataSet();
while (true)
{
log("查询到数据0.000");//
dscommand = DBHelper.Query("SELECT * FROM dbo.AutoCommand WHERE CONVERT(VARCHAR(10),CREATTIME,126)=Convert(varchar(10),getdate(),126) and STATUS=0");
Thread.Sleep(500);//
log("查询到数据0.001");//停留500毫秒,等待数据库返回。
}
using System.Collections.Generic;
using System.Text;
using System.Data.SqlClient;
using System.Data;
using System.Configuration;
using BookShop.Models;
namespace BookShop.DAL
{
public class DBHelp
{
public static SqlConnection connection;
public static SqlConnection Connection
{
get
{
string connectionString = ConfigurationManager.ConnectionStrings["mybookshop"].ConnectionString;
if (connection == null)
{
connection = new SqlConnection(connectionString);
connection.Open();
}
else if (connection.State == System.Data.ConnectionState.Closed)
{
connection = new SqlConnection(connectionString);
connection.Open();
}
else if (connection.State == System.Data.ConnectionState.Broken)
{
connection.Close();
connection.Open();
}
return connection;
}
}
public static DataSet Query(string sql)
{
DataSet ds = new DataSet();
try
{
SqlCommand com = new SqlCommand(sql, Connection);
SqlDataAdapter dmp = new SqlDataAdapter(com);
dmp.Fill(ds);
}
catch (System.Data.SqlClient.SqlException ex)
{
throw new Exception(ex.Message);
}
finally
{
Connection.Close();
}
return ds;
} #region 增,删,改ExecuteNonQuery
/// <summary>
/// 单个数据增,删,改
/// </summary>
/// <param name="safeSql"></param>
/// <returns></returns>
public static int ExecuteCommand(string safeSql)
{
try
{
using (SqlCommand cmd = new SqlCommand(safeSql, Connection))
{
int result = cmd.ExecuteNonQuery();
return result;
} }
catch (SqlException ex)
{ throw ex;
}
}
#endregion } }下面执行的时候,有的时候循环会中断,日志里面记录应该是
查询到数据0.000
查询到数据0.001
查询到数据0.000
查询到数据0.001
查询到数据0.000
........
........
查询到数据0.001
查询到数据0.000到这里停在这里了,再也不往下写了,程序就死在这里,到底是什么问题呀. public DataSet dscommand = new DataSet();
while (true)
{
log("查询到数据0.000");//
dscommand = DBHelper.Query("SELECT * FROM dbo.AutoCommand WHERE CONVERT(VARCHAR(10),CREATTIME,126)=Convert(varchar(10),getdate(),126) and STATUS=0");
Thread.Sleep(500);//
log("查询到数据0.001");//停留500毫秒,等待数据库返回。
}
你也方法里没用初始化connection。打开connection还有DBHelper中connection不要static
{
connection = new SqlConnection(connectionString);
connection.Open();
}
else if (connection.State == System.Data.ConnectionState.Closed)
{
connection = new SqlConnection(connectionString);
connection.Open();
}
else if (connection.State == System.Data.ConnectionState.Broken)
{
connection.Close();
connection.Open();
}还有DBHelper中connection不要static?要怎么改?
我也是抄的.
{
SqlConnection cn = new SqlConnection();
cn.ConnectionString = "链接字符串";
cn.Open();
SqlCommand cmd = new SqlCommand();
DataTable dt = new DataTable();
cmd = new SqlCommand(cmdtext, cn);
SqlDataReader dr = null;
using (dr = cmd.ExecuteReader(CommandBehavior.CloseConnection))
{ dt.Load(dr);
}
return dt;
}