//数据操作的公共类
using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using System.Data.Sql;
using System.Data.SqlClient;namespace DAL
{
public class SqlAccess
{
private static string connStr = @"server=CHINA-6F2289564;database=DiagSys;uid=sa;pwd=;";
//private static string connStr = @"server=.;database=DissSys;uid=sa;pwd=xingjian;";
//private static string connStr = @"server=My-PC\SQL2005;database=DissSys;uid=sa;pwd=xingjian;"; private static SqlConnection conn = new SqlConnection(connStr);
//获取联接对象
public static SqlConnection GetConn()
{
if (conn.State == ConnectionState.Closed)
{
conn.Open();
}
return conn;
} public static void CloseCon()
{
conn.Close();
} //获取查询结果记录集的dataSet对象
public static DataSet GetDataSet(string sqlStr)//,string tableName)
{
//SqlCommand cmd=new SqlCommand(sqlStr,GetConn());
SqlDataAdapter adapter = new SqlDataAdapter(sqlStr, GetConn());
DataSet ds = new DataSet();
adapter.Fill(ds);
return ds;
} public static DataSet GetDataSet(string sqlStr,string tableName)
{
//SqlCommand cmd = new SqlCommand(sqlStr, GetConn());
SqlDataAdapter adapter = new SqlDataAdapter(sqlStr, GetConn());
DataSet ds = new DataSet();
adapter.Fill(ds,tableName);
return ds;
} //插入记录
public static int ExecteNonQuery(string sqlStr)
{
int res = 0;
SqlCommand cmd = new SqlCommand(sqlStr, GetConn()); res = cmd.ExecuteNonQuery();
try
{
res = cmd.ExecuteNonQuery();
}
catch
{
res = 0;
}
CloseCon();
return res;
}
}
}
//数据操作的页面(执行操作)using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;
using DAL;public partial class Admin_dissNameAddBtn : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
/*病名添加按钮后台处理*/ //string dissName = Request.QueryString["dissName"];
string dissName = "肺炎";
//string dissName = Server.UrlDecode(Request.QueryString["dissName"]).ToString().Replace(")", "").Replace("--", "").Replace(",", "");
string sqlStr = "insert into dissInfo(diss_name)values('" + dissName + "')";
int res = 0;
try
{ res = SqlAccess.ExecteNonQuery(sqlStr);
}
catch
{
SqlAccess.CloseCon();
Response.Write("0");
Response.End();
}
//添加成功查询出ID并返回
if (res > 0)
{
string sqlStr1 = "select diss_id from dissInfo where diss_Name='" + dissName + "'";
DataSet ds = new DataSet();
ds = SqlAccess.GetDataSet(sqlStr1);
if (ds.Tables[0].Rows.Count > 0)
{
res = int.Parse(ds.Tables[0].Rows[0][0].ToString());
Response.Write(res.ToString());
Response.End();
}
else
{
Response.Write("1");
Response.End();
}
}
else
{
Response.Write(res.ToString());
//Response.Write("2");
Response.End();
}
}
}
弄了很久 没看出哪里有错~ 求解
using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using System.Data.Sql;
using System.Data.SqlClient;namespace DAL
{
public class SqlAccess
{
private static string connStr = @"server=CHINA-6F2289564;database=DiagSys;uid=sa;pwd=;";
//private static string connStr = @"server=.;database=DissSys;uid=sa;pwd=xingjian;";
//private static string connStr = @"server=My-PC\SQL2005;database=DissSys;uid=sa;pwd=xingjian;"; private static SqlConnection conn = new SqlConnection(connStr);
//获取联接对象
public static SqlConnection GetConn()
{
if (conn.State == ConnectionState.Closed)
{
conn.Open();
}
return conn;
} public static void CloseCon()
{
conn.Close();
} //获取查询结果记录集的dataSet对象
public static DataSet GetDataSet(string sqlStr)//,string tableName)
{
//SqlCommand cmd=new SqlCommand(sqlStr,GetConn());
SqlDataAdapter adapter = new SqlDataAdapter(sqlStr, GetConn());
DataSet ds = new DataSet();
adapter.Fill(ds);
return ds;
} public static DataSet GetDataSet(string sqlStr,string tableName)
{
//SqlCommand cmd = new SqlCommand(sqlStr, GetConn());
SqlDataAdapter adapter = new SqlDataAdapter(sqlStr, GetConn());
DataSet ds = new DataSet();
adapter.Fill(ds,tableName);
return ds;
} //插入记录
public static int ExecteNonQuery(string sqlStr)
{
int res = 0;
SqlCommand cmd = new SqlCommand(sqlStr, GetConn()); res = cmd.ExecuteNonQuery();
try
{
res = cmd.ExecuteNonQuery();
}
catch
{
res = 0;
}
CloseCon();
return res;
}
}
}
//数据操作的页面(执行操作)using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;
using DAL;public partial class Admin_dissNameAddBtn : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
/*病名添加按钮后台处理*/ //string dissName = Request.QueryString["dissName"];
string dissName = "肺炎";
//string dissName = Server.UrlDecode(Request.QueryString["dissName"]).ToString().Replace(")", "").Replace("--", "").Replace(",", "");
string sqlStr = "insert into dissInfo(diss_name)values('" + dissName + "')";
int res = 0;
try
{ res = SqlAccess.ExecteNonQuery(sqlStr);
}
catch
{
SqlAccess.CloseCon();
Response.Write("0");
Response.End();
}
//添加成功查询出ID并返回
if (res > 0)
{
string sqlStr1 = "select diss_id from dissInfo where diss_Name='" + dissName + "'";
DataSet ds = new DataSet();
ds = SqlAccess.GetDataSet(sqlStr1);
if (ds.Tables[0].Rows.Count > 0)
{
res = int.Parse(ds.Tables[0].Rows[0][0].ToString());
Response.Write(res.ToString());
Response.End();
}
else
{
Response.Write("1");
Response.End();
}
}
else
{
Response.Write(res.ToString());
//Response.Write("2");
Response.End();
}
}
}
弄了很久 没看出哪里有错~ 求解
这句在查询分析器执行过啦 OK的 可以影响一行
返回的是0
没有执行两次 呵呵 刚才有点心急 代码没处理好就贴上来了 原来是为了看有没异常
//插入记录
public static int ExecteNonQuery(string sqlStr)
{
int res = 0;
SqlCommand cmd = new SqlCommand(sqlStr, GetConn()); res = cmd.ExecuteNonQuery();
//try
//{
// res = cmd.ExecuteNonQuery();
//}
//catch
//{
// res = 0;
//}
CloseCon();
老大 按你说的 改了 测试了下 还是没异常抛出 测试的是这个dissNameAddBtn.aspx页面
aspx:<%@ Page Language="C#" AutoEventWireup="true" CodeFile="dissNameAddBtn.aspx.cs" Inherits="Admin_dissNameAddBtn" %>aspx.cs:
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;
using DAL;public partial class Admin_dissNameAddBtn : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
/*病名添加按钮后台处理*/ string dissName = Request.QueryString["dissName"];
//string dissName = "肺炎";
//string dissName = Server.UrlDecode(Request.QueryString["dissName"]).ToString().Replace(")", "").Replace("--", "").Replace(",", "");
string sqlStr = "insert into dissInfo(diss_name)values('" + dissName + "')";
int res = 0;
try
{ res = SqlAccess.ExecteNonQuery(sqlStr);
}
catch
{
SqlAccess.CloseCon();
Response.Write("0");
Response.End();
}
//添加成功查询出ID并返回
if (res > 0)
{
string sqlStr1 = "select diss_id from dissInfo where diss_Name='" + dissName + "'";
DataSet ds = new DataSet();
ds = SqlAccess.GetDataSet(sqlStr1);
if (ds.Tables[0].Rows.Count > 0)
{
res = int.Parse(ds.Tables[0].Rows[0][0].ToString());
Response.Write(res.ToString());
Response.End();
}
else
{
Response.Write("1");
Response.End();
}
}
else
{
Response.Write(res.ToString());
//Response.Write("2");
Response.End();
}
}
}
运行的结果 就是 一个 0
return res;删的不干净 才变两次了
执行cmd.ExecuteNonQuery()之前sqlconnection在哪里打开的?
调用了Getconn() 打开了 Getconn在前面的部分定义了
private static string connStr = @"server=CHINA-6F2289564;database=DiagSys;uid=sa;pwd=;"; private static SqlConnection conn = new SqlConnection(connStr);
//获取联接对象
public static SqlConnection GetConn()
{
if (conn.State == ConnectionState.Closed)
{
conn.Open();
}
return conn;
}
{ res = SqlAccess.ExecteNonQuery(sqlStr);
}
catch(Excepion ex)
{
throw ex;
}把错误打出来看看
string sqlStr = "insert into dissInfo(diss_name)values('" + dissName + "')";string sqlStr = "insert into dissInfo(diss_name)空格values('" + dissName + "')";
一看不就是写漏字了吗
你把所有的trycatch都去掉,应该不会没错的。
ExceptionVS不是有自动提示吗
第一个:
res = SqlAccess.ExecteNonQuery(sqlStr); //try
//{ // res = SqlAccess.ExecteNonQuery(sqlStr);
//} //catch (Excepion ex)
//{
// System.Web.HttpContext.Current.Response.Write(ex.Message); //} //catch
//{
// SqlAccess.CloseCon(); // Response.Write("0");
// Response.End();
//}
第二个: res = cmd.ExecuteNonQuery();
// try
// {
// res = cmd.ExecuteNonQuery();
// }
// catch(Exception ex)
//{
//res = 0;
//System.Web.HttpContext.Current.Response.Write(ex.Message);
//}还是没异常啊~
sa帐号有插入的权限么
有5个字段 除了上面说明的 diss_id 自增 和 diss_name 非空外 其他三个都可以为空 sa 有插入权限的 因为 用查询分析器来 测试过啦 可以插入 insert into dissInfo(diss_name)values('鼻炎')
insert into dissInfo(diss_name)values('感冒')都已经插入成功了
在SqlAccess.cs公共类里
定义为 private static SqlConnection conn = new SqlConnection(connStr);在dissNameAddBtn.aspx Response.Write(SqlAccess.Conn.state);提示 DAL.SqlAccess”并不包含“Conn”的定义把private static SqlConnection conn = new SqlConnection(connStr);改为 public static SqlConnection conn = new SqlConnection(connStr);还是 提示 DAL.SqlAccess”并不包含“Conn”的定义
CHINA-6F2289564
这个机器是你测试的机器吗?你确认没有连错机器?
哇哇哇 好像摸到点边了 现在把sql语句写错了 去掉了一个单引号 string sqlStr = "insert into dissInfo(diss_name)values(" + dissName + "')"; 还是没报错 还是 返回0 是不是 说明 数据库没打开 没连上?
嗯 没有连错 是我的计算机的名字 我现在是把一个系统改版 重组 原版就用的 这句 是对的 可以返回 数字19 重组系统里新建的这个页面就是 不行 奇怪了 对了 SqlAccess.cs公共类是放在DAL文件夹里的 DAL文件夹里还有bin obj properties三个文件夹
一个DAL.csproj
string sqlStr = "insert into dissInfo(diss_name) values('" + "肺炎" + "')";
conn.Open();
SqlCommand cmd = new SqlCommand(sqlStr, conn);
int x = cmd.ExecuteNonQuery();
Response.Write(x);
Default.aspx页面
Default.aspx.cs
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
SqlConnection conn = new SqlConnection("server=CHINA-6F2289564;database=DiagSys;uid=sa;pwd=;");
string sqlStr = "insert into dissInfo(diss_name) values('" + "肺炎" + "')";
conn.Open();
SqlCommand cmd = new SqlCommand(sqlStr, conn);
int x = cmd.ExecuteNonQuery();
Response.Write(x);
}
}插入 成功了 返回1 那就是 我引用SqlAccess.cs公共类有问题SqlAccess.cs公共类是放在DAL文件夹里的 DAL文件夹里还有bin obj properties三个文件夹
一个DAL.csproj
net_lover老大 说对了 前面 我两个系统引用同一个 公共类 应该是 冲突问题 dalmeeme老大 指导我故意把 sql语句 改错也提供了一点发现 发现 数据库没有连上
谢谢大家啦