源代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Data;
using System.Data.SqlClient;
namespace 图书馆工程
{
class database
{
SqlConnection con;
private void open()//开启 连接数据库
{
if (con == null)
{
string constr = @"Data Source=.; Initial Catalog=libraryMIS; Integrated Security=True";
con = new SqlConnection(constr);
}
if (con.State == System.Data.ConnectionState.Closed)
{
con.Open();
}
}
private void close()
{
if (con != null)
con.Close();
}
private SqlCommand createcommand(string sqlStr)
{
open();
SqlCommand com = new SqlCommand(sqlStr, con);
return com;
}
public void runSql(string sqlStr)
{
SqlCommand cmd = createcommand(sqlStr);
cmd.ExecuteNonQuery();
close();
}
public int runSqlInt(string sqlStr)
{
SqlCommand cmd = createcommand(sqlStr);
int t = (int)cmd.ExecuteScalar();
close();
return t;
}
public SqlDataReader runSql(string sqlStr, out SqlDataReader dr)
{
SqlCommand cmd = createcommand(sqlStr);
dr = cmd.ExecuteReader(CommandBehavior.CloseConnection);
return dr;
}
public DataTable ConvertDataReaderToDataTable(SqlDataReader datareader)
{
DataTable dt = new DataTable();
DataTable schemaTable = datareader.GetSchemaTable();
try
{
foreach (DataRow myRow in schemaTable.Rows)
{
DataColumn myDataColumn = new DataColumn();
myDataColumn.DataType = System.Type.GetType("System.String");
dt.Columns.Add(myDataColumn);
}
while (datareader.Read())
{
DataRow mydataRow = dt.NewRow();
for (int i = 0; i < schemaTable.Rows.Count; i++)
{
mydataRow[i] = datareader[i].ToString();
}
dt.Rows.Add(mydataRow);
mydataRow = null;
}
schemaTable = null;
datareader.Close();
return dt;
}
catch (Exception ex) { throw new Exception("转换出错", ex); }
}
}
}
问问大神们!我到底应该怎么修改!
异常信息已经告诉你了问题出在SQL语句中一个"*"号附近。
所以剩下来的事就是:你得通过调试的手段定位到那个发生异常的SQL语句,把那个SQL语句复制到数据库的查询分析器中看看到底有什么问题。
sql语句有错误呗。吧sql语句贴出来
@删除回忆的星星:
大爷把你的sql语句打出来.sql语句懂吗...
通常是sql有问题,可以将sql打印出来看看..就知道了。
大爷把你的sql语句打出来.sql语句懂吗...
你代码里面的 sqlStr 这个参数不符合SQL语法规定,把这个参数的内容在SQL里面执行,你就会发现错在哪了/////
豆子哪里来的