这段是对的代码(int类型),请往下看
if (Request.QueryString["id"] != null)
{ int id = int.Parse(Request.QueryString["id"]);
string sqlstr = "SELECT B_ABinfo.B_name,B_ABinfo.B_relation ,XB_Ieinfo.* FROM B_ABinfo INNER JOIN XB_Ieinfo ON B_ABinfo.B_InsuranceSlipId = XB_Ieinfo.B_InsuranceSlipId WHERE B_ABinfo.B_InsuranceSlipId='" + id + "'";
database db = new database();
DataTable dt = db.getdatatable(sqlstr); foreach (DataRow dr in dt.Rows)
{ B1.Text = dr["B_name"].ToString();
B2.Text = dr["B_relation"].ToString(); }
这段代码为什么错???(string类型)
if (Request.QueryString["id"] != null)
{ string id = Request.QueryString["id"];
string sqlstr = "SELECT B_ABinfo.B_name,B_ABinfo.B_relation ,XB_Ieinfo.* FROM B_ABinfo INNER JOIN XB_Ieinfo ON B_ABinfo.B_InsuranceSlipId = XB_Ieinfo.B_InsuranceSlipId WHERE B_ABinfo.B_InsuranceSlipId='" + id + "'";
database db = new database();
DataTable dt = db.getdatatable(sqlstr); foreach (DataRow dr in dt.Rows)
{ B1.Text = dr["B_name"].ToString();
B2.Text = dr["B_relation"].ToString(); }取int类型数据不会报错,如果数据中含有字母,就会报异常:输入字符串的格式不正确、
这是我的数据类
using System;
using System.Data;
using System.Configuration;
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.Sql;
using System.Data.SqlClient;/// <summary>
/// database 的摘要说明
/// </summary>
/// namespace data
{
public class database
{
// private static string connstr = ConfigurationSettings.AppSettings["ServerConnection"];
protected SqlConnection conn = new SqlConnection();
protected String connstr;
public database()
{
//
// TODO: 在此处添加构造函数逻辑
//
connstr = "server=.;database=baoxian;uid=sa;pwd=;";
}
~database()
{
try
{
if (conn != null)
conn.Close();
}
catch { }
try
{
dispose();
}
catch { }
}
public void dispose()
{
if (conn != null)
{
conn.Dispose();
conn = null;
}
}
protected void open()
{
conn.ConnectionString = connstr;
conn.Open();
}
public void close()
{
if (conn != null)
conn.Close();
}
public int ExecuteSql(String SqlString)
{
int count = -1;
open();
try
{
SqlCommand cmd = new SqlCommand(SqlString, conn);
count = cmd.ExecuteNonQuery();
}
catch
{
count = -1;
}
finally
{
close();
}
return count;
}
public DataTable getdatatable(String sqlstring)
{
open();
SqlDataAdapter adapter = new SqlDataAdapter(sqlstring, conn);
DataTable dt = new DataTable();
adapter.Fill(dt);
close();
return dt;
}
public SqlDataReader getdatareader(String sqlstring)
{
open();
SqlCommand cmd = new SqlCommand(sqlstring, conn);
SqlDataReader dr = cmd.ExecuteReader();
return dr;
}
public DataSet getmyds(String sqlstring)
{
open();
SqlDataAdapter da = new SqlDataAdapter(sqlstring, conn);
DataSet ds = new DataSet();
da.Fill(ds);
close();
return ds;
}
}
}
if (Request.QueryString["id"] != null)
{ int id = int.Parse(Request.QueryString["id"]);
string sqlstr = "SELECT B_ABinfo.B_name,B_ABinfo.B_relation ,XB_Ieinfo.* FROM B_ABinfo INNER JOIN XB_Ieinfo ON B_ABinfo.B_InsuranceSlipId = XB_Ieinfo.B_InsuranceSlipId WHERE B_ABinfo.B_InsuranceSlipId='" + id + "'";
database db = new database();
DataTable dt = db.getdatatable(sqlstr); foreach (DataRow dr in dt.Rows)
{ B1.Text = dr["B_name"].ToString();
B2.Text = dr["B_relation"].ToString(); }
这段代码为什么错???(string类型)
if (Request.QueryString["id"] != null)
{ string id = Request.QueryString["id"];
string sqlstr = "SELECT B_ABinfo.B_name,B_ABinfo.B_relation ,XB_Ieinfo.* FROM B_ABinfo INNER JOIN XB_Ieinfo ON B_ABinfo.B_InsuranceSlipId = XB_Ieinfo.B_InsuranceSlipId WHERE B_ABinfo.B_InsuranceSlipId='" + id + "'";
database db = new database();
DataTable dt = db.getdatatable(sqlstr); foreach (DataRow dr in dt.Rows)
{ B1.Text = dr["B_name"].ToString();
B2.Text = dr["B_relation"].ToString(); }取int类型数据不会报错,如果数据中含有字母,就会报异常:输入字符串的格式不正确、
这是我的数据类
using System;
using System.Data;
using System.Configuration;
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.Sql;
using System.Data.SqlClient;/// <summary>
/// database 的摘要说明
/// </summary>
/// namespace data
{
public class database
{
// private static string connstr = ConfigurationSettings.AppSettings["ServerConnection"];
protected SqlConnection conn = new SqlConnection();
protected String connstr;
public database()
{
//
// TODO: 在此处添加构造函数逻辑
//
connstr = "server=.;database=baoxian;uid=sa;pwd=;";
}
~database()
{
try
{
if (conn != null)
conn.Close();
}
catch { }
try
{
dispose();
}
catch { }
}
public void dispose()
{
if (conn != null)
{
conn.Dispose();
conn = null;
}
}
protected void open()
{
conn.ConnectionString = connstr;
conn.Open();
}
public void close()
{
if (conn != null)
conn.Close();
}
public int ExecuteSql(String SqlString)
{
int count = -1;
open();
try
{
SqlCommand cmd = new SqlCommand(SqlString, conn);
count = cmd.ExecuteNonQuery();
}
catch
{
count = -1;
}
finally
{
close();
}
return count;
}
public DataTable getdatatable(String sqlstring)
{
open();
SqlDataAdapter adapter = new SqlDataAdapter(sqlstring, conn);
DataTable dt = new DataTable();
adapter.Fill(dt);
close();
return dt;
}
public SqlDataReader getdatareader(String sqlstring)
{
open();
SqlCommand cmd = new SqlCommand(sqlstring, conn);
SqlDataReader dr = cmd.ExecuteReader();
return dr;
}
public DataSet getmyds(String sqlstring)
{
open();
SqlDataAdapter da = new SqlDataAdapter(sqlstring, conn);
DataSet ds = new DataSet();
da.Fill(ds);
close();
return ds;
}
}
}
解决方案 »
- asp.net 内容页修改母版页控件的内容
- asp.net response问题,帮我看看错在那里??????急急急
- World Wide Web Publishing Services找不到指定路径~!请问怎么设置路径啊!望高手帮忙啊
- 关于控件响应Tab键的的顺序设置
- 讨论事务问题!(发言者有分)
- 请问:在vbscript中怎么调用web控件啊
- 在vs.net2003中怎么用IDE写储存过程啊??
- 怎样得到<iframe>中Page当前的URL,我用src只得到最初设置的src
- 选定数据源上未能找到字段或属性?
- 高手帮忙:实现有onmouseover等客户端功能,又要有事件到服务器端处理,在线等待ing
- 想在广州找个工作,那位朋友能帮个忙?
- gridview的 模版页问题
你不能在sql中用int类型和字符串类型比较的。
Request.QueryString["id"] 里包含字母当然不正确了
感觉LZ给 Request.QueryString["id"]的类型不稳定 上面没错是因为你给INT,下面又给STRING.这样试if (Convert.ToString( Request.QueryString["id"]) !=null || Convert.ToString( Request.QueryString["id"]!=" ")
{
}
你这个字段到底是什么型的?如果是int的.那肯定会报错的.不要把int型或是varchar型的一味的写成'"+xxx+"'
要分清楚你写的那两个单引号是干嘛的.
2.当id为string类型时,写为B_ABinfo.B_InsuranceSlipId = "'" + id + "'"
B_InsuranceSlipId是Varchar类型
还有错误在哪行代码产生的
补充一下,“‘”+ id + “’”(这里id是string类型)
“”+id+“”(id是int类型)
int类型时加上‘’不报错是因为数据库系统自动转换了,严格来说,int类型没必要加单引号
SELECT B_ABinfo.* ,XB_Ieinfo.* FROM B_ABinfo INNER JOIN XB_Ieinfo ON B_ABinfo.B_InsuranceSlipId = XB_Ieinfo.B_InsuranceSlipId WHERE B_ABinfo.B_InsuranceSlipId=' 1aa'
断点到红色地方之后就跳出循环了 之后出现异常: 输入字符串的格式不正确
foreach (DataRow dr in dt.Rows)
{
DataTable dt = db.getdatatable(sqlstr);
前看看两端代码的sqlstr都是什么?
可以查询的到
一定是Text的值为空了
也就是空串 ""
空串的直接转换成数字(整数,小数)如果没赋值给变量就直接传给参数,就会出错这个说法感觉是对的 可是为什么是空串呢???应该字母赋值才对呢
http://www.softfault.com
{ string id = Request.QueryString["id"];
string sqlstr = "SELECT B_ABinfo.B_name,B_ABinfo.B_relation ,XB_Ieinfo.* FROM B_ABinfo INNER JOIN XB_Ieinfo ON B_ABinfo.B_InsuranceSlipId = XB_Ieinfo.B_InsuranceSlipId WHERE B_ABinfo.B_InsuranceSlipId='" + id + "'";
database db = new database();
看看变量的值是否符合sql语句格式!!
id到这句就没再显示ID值是多少 DataTable dt = db.getdatatable(sqlstr);
在数据库执行
你的id取出来也不为空,
sql文本拼的也没错误
在查询分析器里还能查出来,在程序就报错?!
慢慢在看看,肯定只是个小错误~!
string sqlstr = "SELECT B_ABinfo.B_name,B_ABinfo.B_relation ,XB_Ieinfo.* FROM B_ABinfo INNER JOIN XB_Ieinfo ON B_ABinfo.B_InsuranceSlipId = XB_Ieinfo.B_InsuranceSlipId WHERE B_ABinfo.B_InsuranceSlipId='" + id + "'";
这不是已经写了吗???是这个意识吗?
执行到这里的时候,打断点把id 和sqlstr Response.Write一下,还不相信有这邪了
string id = string.Copy(Request.QueryString["id"]); 然后跟踪看id的值和sqlstr 的值。
id "1aa" string
SELECT B_ABinfo.* ,XB_Ieinfo.* FROM B_ABinfo INNER JOIN XB_Ieinfo ON B_ABinfo.B_InsuranceSlipId = XB_Ieinfo.B_InsuranceSlipId WHERE B_ABinfo.B_InsuranceSlipId='1aa'
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="index.aspx.cs" Inherits="_Default" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>保单首页</title>
</head>
<body>
<script type="text/jscript">
function yichuli(){
if(document.getElementById("yi").style.display=="none"){
document.getElementById("yi").style.display = "";
document.getElementById("wei").style.display= "none";
}
}
function weichuli(){
if(document.getElementById("yi").style.display==""){
document.getElementById("yi").style.display = "none";
document.getElementById("wei").style.display= "";
}
}
</script>
<form id="form1" runat="server">
<div>
<table border="1" cellpadding="0" cellspacing="0">
<tr>
<td>
<a href="index.aspx" target="_blank"> 首页</a>
</td>
<td style="width: 135px">
成交笔数 :<asp:Label ID="Label1" runat="server" Text="Label"></asp:Label></td>
<td style="width: 116px">
<a href="xk.aspx" target="_blank"> 险科总额:</a><asp:Label ID="Label2" runat="server" Text="Label"></asp:Label></td>
<td>
<a href="je.aspx" target="_blank"> 总金额:</a><asp:Label ID="Label3" runat="server" Text="Label"></asp:Label>
</td>
</tr>
<tr>
<td colspan="2" style="height: 21px">
<a href="yi_index.aspx"> 已处理</a></td>
<td colspan="2" style="height: 21px">
<a href="javascript:weichuli()"> 未处理</a></td>
</tr>
<tr>
<td colspan="2" style="height: 20px">
<a href="je.aspx" target="_blank">根据投保金额查询</a>
</td>
<td colspan="2" style="height: 20px">
<a href="xk.aspx">根据险科查询</a></td>
</tr>
<tr>
<td colspan="4" style="height: 21px">
<span id="wei" style="display:block">
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:baoxianConnectionString %>"
SelectCommand="SELECT * FROM [B_ABinfo] ORDER BY [B_InsuranceSlipId]"></asp:SqlDataSource>
<asp:GridView ID="GridView1" runat="server" AllowSorting="True"
AutoGenerateColumns="False" BackColor="#DEBA84" BorderColor="#DEBA84" BorderStyle="None"
BorderWidth="1px" CellPadding="3" CellSpacing="2" DataKeyNames="B_InsuranceSlipId" DataSourceID="SqlDataSource1" AllowPaging="True">
<FooterStyle BackColor="#F7DFB5" ForeColor="#8C4510" />
<Columns>
<asp:BoundField DataField="B_InsuranceSlipId" HeaderText="编号" InsertVisible="False" ReadOnly="True"
SortExpression="B_InsuranceSlipId" />
<asp:BoundField DataField="B_name" HeaderText="投保人姓名" SortExpression="B_name" />
<asp:BoundField DataField="B_asaddress" HeaderText="保单送达地址" SortExpression="B_asaddress" />
<asp:BoundField DataField="B_aggregate" HeaderText="实收保费合计" SortExpression="B_aggregate" />
<asp:BoundField DataField="B_idate" HeaderText="投保日期" SortExpression="B_idate" />
<asp:TemplateField HeaderText="查看详情">
<ItemTemplate>
<a href='bdxq.aspx?id= <%# Eval("B_InsuranceSlipId").ToString().Trim()%>' target="_blank" >查看详细 </a>
</ItemTemplate>
</asp:TemplateField>
</Columns>
<RowStyle BackColor="#FFF7E7" ForeColor="#8C4510" />
<SelectedRowStyle BackColor="#738A9C" Font-Bold="True" ForeColor="White" />
<PagerStyle ForeColor="#8C4510" HorizontalAlign="Center" />
<HeaderStyle BackColor="#A55129" Font-Bold="True" ForeColor="White" />
<PagerSettings PageButtonCount="3" />
</asp:GridView>
</span>
<span id="yi" style="display:none">
</span>
</td>
</tr>
<tr>
<td colspan="2">
<a href="je.aspx" target="_blank">根据投保金额查询</a> </td>
<td colspan="2">
<a href="xk.aspx" target="_blank">根据险科查询</a></td>
</tr>
<tr>
<td>
<a href="index.aspx"> 首页</a>
</td>
<td style="width: 135px">
成交笔数:<asp:Label ID="Label4" runat="server" Text="Label"></asp:Label></td>
<td style="width: 116px">
<a href="xk.aspx" target="_blank"> 险科总额:</a><asp:Label ID="Label5" runat="server" Text="Label"></asp:Label></td>
<td>
<a href="je.aspx" target="_blank"> 总金额:</a><asp:Label ID="Label6" runat="server" Text="Label"></asp:Label></td>
</tr>
</table>
</div>
</form>
</body>
</html>
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.Sql;
using System.Data.Common;
using data;public partial class Default1 : System.Web.UI.Page
{
public DataSet ds = new DataSet();
protected void Page_Load(object sender, EventArgs e)
{
if (Request.QueryString["id"] != null)
{
string id = Request.QueryString["id"].Trim();
string sqlstr = "SELECT B_ABinfo.* ,XB_Ieinfo.* FROM B_ABinfo INNER JOIN XB_Ieinfo ON B_ABinfo.B_InsuranceSlipId = XB_Ieinfo.B_InsuranceSlipId WHERE B_ABinfo.B_InsuranceSlipId='" + id + "'";
database db = new database();
DataTable dt = db.getdatatable(sqlstr); foreach (DataRow dr in dt.Rows)
{ B1.Text = dr["B_name"].ToString();
B2.Text = dr["B_relation"].ToString();
}
}
} }
using System;
using System.Data;
using System.Configuration;
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.Sql;
using System.Data.SqlClient;/// <summary>
/// database 的摘要说明
/// </summary>
/// namespace data
{
public class database
{
// private static string connstr = ConfigurationSettings.AppSettings["ServerConnection"];
protected SqlConnection conn = new SqlConnection();
protected String connstr;
public database()
{
//
// TODO: 在此处添加构造函数逻辑
//
connstr = "server=.;database=baoxian;uid=sa;pwd=;";
}
~database()
{
try
{
if (conn != null)
conn.Close();
}
catch { }
try
{
dispose();
}
catch { }
}
public void dispose()
{
if (conn != null)
{
conn.Dispose();
conn = null;
}
}
protected void open()
{
conn.ConnectionString = connstr;
conn.Open();
}
public void close()
{
if (conn != null)
conn.Close();
}
public int ExecuteSql(String SqlString)
{
int count = -1;
open();
try
{
SqlCommand cmd = new SqlCommand(SqlString, conn);
count = cmd.ExecuteNonQuery();
}
catch
{
count = -1;
}
finally
{
close();
}
return count;
}
public DataTable getdatatable(String sqlstring)
{
open();
SqlDataAdapter adapter = new SqlDataAdapter(sqlstring, conn);
DataTable dt = new DataTable();
adapter.Fill(dt);
close();
return dt;
}
public SqlDataReader getdatareader(String sqlstring)
{
open();
SqlCommand cmd = new SqlCommand(sqlstring, conn);
SqlDataReader dr = cmd.ExecuteReader();
return dr;
}
public DataSet getmyds(String sqlstring)
{
open();
SqlDataAdapter da = new SqlDataAdapter(sqlstring, conn);
DataSet ds = new DataSet();
da.Fill(ds);
close();
return ds;
}
}
}
{
open();
SqlDataAdapter adapter = new SqlDataAdapter(sqlstring, conn);
DataTable dt = new DataTable();
adapter.Fill(dt);
close();
return dt;
}
红色部分应该是string吧?
{
open();
SqlDataAdapter adapter = new SqlDataAdapter(sqlstring, conn);
DataTable dt = new DataTable();
adapter.Fill(dt);
close();
return dt;
}
把String sqlstring改成string sqlstring啊