第一个:
public partial class Image_TryNews2 : System.Web.UI.Page
{
public DataSet ds;
public DataRow dr;
public String newsid;
private void Page_Load(object sender, EventArgs e)
{
SqlConnection MyConnection;
String ConnStr,strCon;
newsid = Request.Params["ID"];
MyConnection =new SqlConnection("Initial Catalog=sol;Data Source=hnu-a4cafe281e0\\sqlexpress;Integrated Security=SSPI;");
MyConnection.Open();
String strCom= "SELECT Title ,FromTo ,Content,Counter ,Time FROM TableNews1 where ID="+newsid;
ds= new DataSet();
SqlDataAdapter myCommand=new SqlDataAdapter(strCom,MyConnection);
myCommand.Fill(ds,"TableNews1");
dr = ds.Tables["TableNews1"].Rows[0];
strCon ="SELECT Counter FROM TableNews1 WHERE ID = '"+newsid+"'";
SqlCommand myCommand2 = new SqlCommand(strCon, MyConnection);
SqlDataReader reader = myCommand2.ExecuteReader();
reader.Read();
int i = reader.GetInt32(0);
i++;
reader.Close();
strCon ="UPDATE TableNews1 SET Counter = "+i.ToString()+" WHERE ( ID= "+newsid+")";
myCommand2.CommandText = strCon;
myCommand2.ExecuteNonQuery();
MyConnection.Close();
}
}报错:
'=' 附近有语法错误。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.Data.SqlClient.SqlException: '=' 附近有语法错误。源错误:
行 29: ds= new DataSet();
行 30: SqlDataAdapter myCommand=new SqlDataAdapter(strCom,MyConnection);
行 31: myCommand.Fill(ds,"TableNews1");
行 32: dr = ds.Tables["TableNews1"].Rows[0];
行 33: strCon ="SELECT Counter FROM TableNews1 WHERE ID = '"+newsid+"'";
第二个 ConnStr = " SET IDENTITY_INSERT sol.dbo.TableNews1 on; insert into TableNews1(Title,Content,Time,Image,Counter) VALUES('" + biaoti.Text + "', '" + zhaizi.Text + "'," + neirong2 + "', '" + now.ToString() + "', '" + img.Text + "', 0) ;SET IDENTITY_INSERT sol.dbo.TableNews1 off ";
MyCommand=new SqlCommand(ConnStr,MyConnection);
MyCommand.ExecuteNonQuery();
Label1.Text="增加成功!";
}
biaoti.Text="";
zhaizi.Text="";
neirong.Text="";
img.Text="";
}
我一提交文章就报错:
在此上下文中不允许使用名称 "ds"。有效表达式包括常量、常量表达式和变量(在某些上下文中)。不允许使用列名。
字符串 ', ', 0) ;SET IDENTITY_INSERT sol.dbo.TableNews1 off ' 后的引号不完整。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.Data.SqlClient.SqlException: 在此上下文中不允许使用名称 "ds"。有效表达式包括常量、常量表达式和变量(在某些上下文中)。不允许使用列名。
字符串 ', ', 0) ;SET IDENTITY_INSERT sol.dbo.TableNews1 off ' 后的引号不完整。源错误:
行 61: ConnStr = " SET IDENTITY_INSERT sol.dbo.TableNews1 on; insert into TableNews1(Title,Content,Time,Image,Counter) VALUES('" + biaoti.Text + "', '" + zhaizi.Text + "'," + neirong2 + "', '" + now.ToString() + "', '" + img.Text + "', 0) ;SET IDENTITY_INSERT sol.dbo.TableNews1 off ";
行 62: MyCommand=new SqlCommand(ConnStr,MyConnection);
行 63: MyCommand.ExecuteNonQuery();
行 64: Label1.Text="增加成功!";
行 65: }
谢谢!
public partial class Image_TryNews2 : System.Web.UI.Page
{
public DataSet ds;
public DataRow dr;
public String newsid;
private void Page_Load(object sender, EventArgs e)
{
SqlConnection MyConnection;
String ConnStr,strCon;
newsid = Request.Params["ID"];
MyConnection =new SqlConnection("Initial Catalog=sol;Data Source=hnu-a4cafe281e0\\sqlexpress;Integrated Security=SSPI;");
MyConnection.Open();
String strCom= "SELECT Title ,FromTo ,Content,Counter ,Time FROM TableNews1 where ID="+newsid;
ds= new DataSet();
SqlDataAdapter myCommand=new SqlDataAdapter(strCom,MyConnection);
myCommand.Fill(ds,"TableNews1");
dr = ds.Tables["TableNews1"].Rows[0];
strCon ="SELECT Counter FROM TableNews1 WHERE ID = '"+newsid+"'";
SqlCommand myCommand2 = new SqlCommand(strCon, MyConnection);
SqlDataReader reader = myCommand2.ExecuteReader();
reader.Read();
int i = reader.GetInt32(0);
i++;
reader.Close();
strCon ="UPDATE TableNews1 SET Counter = "+i.ToString()+" WHERE ( ID= "+newsid+")";
myCommand2.CommandText = strCon;
myCommand2.ExecuteNonQuery();
MyConnection.Close();
}
}报错:
'=' 附近有语法错误。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.Data.SqlClient.SqlException: '=' 附近有语法错误。源错误:
行 29: ds= new DataSet();
行 30: SqlDataAdapter myCommand=new SqlDataAdapter(strCom,MyConnection);
行 31: myCommand.Fill(ds,"TableNews1");
行 32: dr = ds.Tables["TableNews1"].Rows[0];
行 33: strCon ="SELECT Counter FROM TableNews1 WHERE ID = '"+newsid+"'";
第二个 ConnStr = " SET IDENTITY_INSERT sol.dbo.TableNews1 on; insert into TableNews1(Title,Content,Time,Image,Counter) VALUES('" + biaoti.Text + "', '" + zhaizi.Text + "'," + neirong2 + "', '" + now.ToString() + "', '" + img.Text + "', 0) ;SET IDENTITY_INSERT sol.dbo.TableNews1 off ";
MyCommand=new SqlCommand(ConnStr,MyConnection);
MyCommand.ExecuteNonQuery();
Label1.Text="增加成功!";
}
biaoti.Text="";
zhaizi.Text="";
neirong.Text="";
img.Text="";
}
我一提交文章就报错:
在此上下文中不允许使用名称 "ds"。有效表达式包括常量、常量表达式和变量(在某些上下文中)。不允许使用列名。
字符串 ', ', 0) ;SET IDENTITY_INSERT sol.dbo.TableNews1 off ' 后的引号不完整。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.Data.SqlClient.SqlException: 在此上下文中不允许使用名称 "ds"。有效表达式包括常量、常量表达式和变量(在某些上下文中)。不允许使用列名。
字符串 ', ', 0) ;SET IDENTITY_INSERT sol.dbo.TableNews1 off ' 后的引号不完整。源错误:
行 61: ConnStr = " SET IDENTITY_INSERT sol.dbo.TableNews1 on; insert into TableNews1(Title,Content,Time,Image,Counter) VALUES('" + biaoti.Text + "', '" + zhaizi.Text + "'," + neirong2 + "', '" + now.ToString() + "', '" + img.Text + "', 0) ;SET IDENTITY_INSERT sol.dbo.TableNews1 off ";
行 62: MyCommand=new SqlCommand(ConnStr,MyConnection);
行 63: MyCommand.ExecuteNonQuery();
行 64: Label1.Text="增加成功!";
行 65: }
谢谢!
strCon ="SELECT Counter FROM TableNews1 WHERE ID = "+newsid;
ConnStr = " SET IDENTITY_INSERT sol.dbo.TableNews1 on; insert into TableNews1(Title,Content,Time,Image,Counter) VALUES('" + biaoti.Text + "', '" + zhaizi.Text + "','" + neirong2 + "', '" + now.ToString() + "', '" + img.Text + "', 0) ;SET IDENTITY_INSERT sol.dbo.TableNews1 off ";
'"+newsid+"'这样写的话会出现错误的
newsid是string
要加單引號
+ biaoti.Text +这种写法,如果不是程序有紧密相关的地方可以保证biaoti.Text中没有单引号,那么这种写法往往是不够认真的或者缺乏经验的。程序甚至可以写得烂,但是要认真,不认真的程序由于含义不全面则本人调试起来很难全面。这个应该写为 + biaoti.Text.Replace("'","''") +
当 IDENTITY_INSERT 设置为 ON 或某个复制用户向 NOT FOR REPLICATION 标识列中插入内容时,必须为表 'TableNews1' 中的标识列指定显式值。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.Data.SqlClient.SqlException: 当 IDENTITY_INSERT 设置为 ON 或某个复制用户向 NOT FOR REPLICATION 标识列中插入内容时,必须为表 'TableNews1' 中的标识列指定显式值。源错误:
行 61: ConnStr = " SET IDENTITY_INSERT sol.dbo.TableNews1 on; insert into TableNews1(Title,ComeTo,Content,Time,Image,Counter) VALUES('" + biaoti.Text + "', '" + zhaizi.Text + "','" + neirong2 + "', '" + now.ToString() + "', '" + img.Text + "', 0) ;SET IDENTITY_INSERT sol.dbo.TableNews1 off ";
行 62: MyCommand=new SqlCommand(ConnStr,MyConnection);
行 63: MyCommand.ExecuteNonQuery();
行 64: Label1.Text="增加成功!";
行 65: }
这个怎么设呢?