private string SQL_Self1 = "SELECT * FROM SELF WHERE ID=@ID ";
private string parm_ID = "@ID"; public SelfInfo GetSelf(int ID)
{
try
{
SelfInfo selfInfo = new SelfInfo(); SqlParameter[] parms = { new SqlParameter(parm_ID, SqlDbType.Int) }; parms[0].Value = ID; using (SqlDataReader rdr = SqlHelper.ExecuteReader(SqlHelper.ConnectionStringLocalTransaction, CommandType.Text, SQL_Self1, parms))
{
if (rdr.Read())
selfInfo = new SelfInfo(rdr.GetString(0), rdr.GetString(1), rdr.GetString(2), rdr.GetString(3), rdr.GetString(4), rdr.GetString(5));
else
selfInfo = new SelfInfo();
}
return selfInfo;
}
catch(Exception err)
{
return null;
}
}
'*' 附近有语法错误。
必须声明标量变量
然后一直报这个错。
不知道啥原因!
解决方案 »
- repeater中checkbox的enabled状态控制
- 大家帮我看看这两条语句
- 100分求好的tabControl第三方控件
- 请教:NET2005为什么不能重装了,一装就出现如下问题,请大家帮忙!
- C# windows编程SQL Server 2005 数据库连接
- java哪个IDE有这个功能?
- c#下用什么将字符串(整型数或者浮点数 字符串)转化为数字?
- 如何多个WINFORM项目(多个EXE)共用APP.CONFIG?
- mongodb 如何取随机数据? .Net 求高手解答在线等
- 关于 多个按钮响应同一个事件
- winfirm中重新给Label赋值,当前位置会改变
- 关于数据库数据统计的问题!
<!--
注意: 除了手动编辑此文件以外,您还可以使用
Web 管理工具来配置应用程序的设置。可以使用 Visual Studio 中的
“网站”->“Asp.Net 配置”选项。
设置和注释的完整列表在
machine.config.comments 中,该文件通常位于
\Windows\Microsoft.Net\Framework\v2.x\Config 中
-->
<configuration> <connectionStrings>
<add name="ConnectionString" connectionString="Data Source=kty;DataBase=test;User ID=sa;Password=@password"/>
</connectionStrings>
<appSettings>
<add key="OrdersDAL" value=" MyWeb.SQLServer"/>
</appSettings> <system.web>
<!--
设置 compilation debug="true" 将调试符号插入
已编译的页面中。但由于这会
影响性能,因此只在开发过程中将此值
设置为 true。
-->
<compilation debug="true" />
<!--
通过 <authentication> 节可以配置 ASP.NET 使用的
安全身份验证模式,
以标识传入的用户。
-->
<authentication mode="Windows" />
<!--
如果在执行请求的过程中出现未处理的错误,
则通过 <customErrors> 节可以配置相应的处理步骤。具体说来,
开发人员通过该节可以配置
要显示的 html 错误页
以代替错误堆栈跟踪。 <customErrors mode="RemoteOnly" defaultRedirect="GenericErrorPage.htm">
<error statusCode="403" redirect="NoAccess.htm" />
<error statusCode="404" redirect="FileNotFound.htm" />
</customErrors>
-->
</system.web>
</configuration>
private string parm_ID = "@ID"; public SelfInfo GetSelf(int ID)
{
try
{
SelfInfo selfInfo = new SelfInfo(); SqlParameter[] parms = { new SqlParameter(parm_ID, SqlDbType.Int) }; parms[0].Value = ID; using (SqlDataReader rdr = SqlHelper.ExecuteReader(SqlHelper.ConnectionStringLocalTransaction, CommandType.Text, SQL_Self1, parms))
{
if (rdr.Read())
selfInfo = new SelfInfo(rdr.GetString(0), rdr.GetString(1), rdr.GetString(2), rdr.GetString(3), rdr.GetString(4), rdr.GetString(5));
else
selfInfo = new SelfInfo();
}
return selfInfo;
}
catch(Exception err)
{
return null;
}
}使用SQL_Self1是参数@ID,为声明也未赋值!
你的密码是“@password”吗还带这个“@”,打开数据库连接没问题吧
或者 string sql=string.format("SELECT * FROM SELF WHERE ID={0}",parm_ID);
SqlHelper.ExecuteReader
SqlHelper.ExecuteReader()
贴上来大家帮你看看哈~
SqlCommand cmd = new SqlCommand(); using (SqlConnection connection = new SqlConnection(connectionString)) {
PrepareCommand(cmd, connection, null, cmdType, cmdText, commandParameters);
object val = cmd.ExecuteScalar();
cmd.Parameters.Clear();
return val;
}
}
//private string SQL_Self1 = "SELECT * FROM SELF WHERE ID=@ID ";
//可能是SQL语句里,使用了保留字self做表名
private string SQL_Self1 = "SELECT * FROM [SELF] WHERE ID=@ID ";
private string SQL_Self1 = "SELECT * FROM SELF WHERE ID=@ID ";
应为: private string SQL_Self1 = "SELECT * FROM SELF WHERE ID='@ID' ";
否则: private string parm_ID = "@ID";
应为: private int parm_ID = "@ID";
其次, 在 SqlParameter[] parms = { new SqlParameter(parm_ID, SqlDbType.Int) }; 中
根据你的 parm_ID 类型决定是否为 SqlDbType.Int 类型。