佳礼资讯网

 找回密码
 注册

ADVERTISEMENT

楼主: 红发

一些.net的问题

[复制链接]
发表于 26-5-2006 01:44 PM | 显示全部楼层
原帖由 红发 于 26-5-2006 01:03 PM 发表

还有小妞儿
昨天我online check一下,看到其他的人也是有用这个的
cmd.CommandType = CommandType.StoredProcedure

但是他们是connect去MSSqlServer的。。。。。。


别人用 cmd.CommandType = CommandType.StoredProcedure 是因为别人用stored procedure... 可是你不是... 事实把这段delete掉(在你的code没必要放这段)... 然后再run... 因该没问题...
回复

使用道具 举报


ADVERTISEMENT

 楼主| 发表于 26-5-2006 11:47 PM | 显示全部楼层
原帖由 小妞儿 于 26-5-2006 01:44 PM 发表


别人用 cmd.CommandType = CommandType.StoredProcedure 是因为别人用stored procedure... 可是你不是... 事实把这段delete掉(在你的code没必要放这段)... 然后再run... 因该没问题...


结果还是一样。。。。
回复

使用道具 举报

发表于 26-5-2006 11:52 PM | 显示全部楼层
可以把你修改了的code整段post上来吗???
回复

使用道具 举报

 楼主| 发表于 27-5-2006 12:51 AM | 显示全部楼层

  1. <%@ Import NameSpace="System.Data" %>
  2. <%@ Import NameSpace="system.Data.odbc" %>
  3. <%@ Page Language="vb" Debug="true" trace="true" %>

  4. <script language="vb" runat="server">

  5. Sub My_click(Sender As Object,E As EventArgs)

  6.         Dim Conn As String = ConfigurationManager.ConnectionStrings("ConnectionString").ConnectionString
  7.         Dim dbcon As New OdbcConnection(Conn)
  8.        
  9.         Dim uname As String = Replace(Trim(username.Text), "'", "''")
  10.         Dim pwd As String = Replace(Trim(password.Text), "'", "''")
  11.        
  12.         Const sql As String = "SELECT password FROM customer WHERE customer_id = @uname;"
  13.        
  14.         Dim cmd As New OdbcCommand(sql, dbcon)
  15.        
  16.         dbcon.open()
  17.        
  18.         Dim param As New OdbcParameter
  19.        
  20.         param = cmd.Parameters.Add("@uname", OdbcType.VarChar, 50)
  21.         param.Direction = ParameterDirection.Input
  22.         param.Value = uname
  23.        
  24.         Dim dr As OdbcDataReader = cmd.ExecuteReader()     
  25.        
  26.                 If dr.Read() Then     
  27.        
  28.                         If Trim(dr("password")) = pwd Then         
  29.                                 FormsAuthentication.SetAuthCookie(uname, False)               
  30.                                 FormsAuthentication.RedirectFromLoginPage(uname, False)  
  31.                                 Response.Redirect("xx.html")           
  32.                         Else                 
  33.                                 lblAlert.Text = "Wrong password"         
  34.                         End If
  35.                
  36.                 Else     
  37.                         lblAlert.Text = "Wrong Username"        
  38.                 End If

  39.         dr.close()
  40.         dbcon.close()
  41.        
  42.         Response.write(uname)
  43.         Response.write("<br>")
  44.         Response.write(pwd)
  45. End Sub

  46. </script>

  47. <html>
  48. <head>
  49. <meta http-equiv="Content-Language" content="en-us">
  50. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  51. <title>Login</title>
  52. </head>
  53. <body>
  54. <form runat="server">
  55. <table border="0" width="100%" cellspacing="0" cellpadding="0" id="table1">
  56.         <tr>
  57.                 <td width="104">&nbsp;</td>
  58.                 <td><asp:Label ID="lblAlert" Runat="server" Text="Please Key In Username And Password"/></td>
  59.         </tr>
  60.         <tr>
  61.                 <td width="104">username</td>
  62.                 <td><asp:TextBox ID="username" Runat="server" Columns="20"/></td>
  63.         </tr>
  64.         <tr>
  65.                 <td width="104">password</td>
  66.                 <td><asp:TextBox ID="password" Runat="server" Columns="20"/></td>
  67.         </tr>
  68.         <tr>
  69.                 <td colspan="2"><asp:Button id="My" runat="server" OnClick="My_click" Text="Login"/>
  70.         </td>
  71.         </tr>
  72. </table>
  73. </form>
  74. </body>
  75. </html>
复制代码


web.config的

  1. <configuration>
  2.     <appSettings/>
  3.     <connectionStrings>
  4.         <add name="ConnectionString" connectionString="Dsn=mydata;uid=root77;pwd=chen1983"
  5.             providerName="System.Data.Odbc" />
  6.     </connectionStrings>
  7. </configuration>
复制代码


我用VS 2005 debug过没有问题

------ Build started: Project: http://localhost/WebSite5/, Configuration: Debug .NET ------
Validating Web Site
Building directory '/WebSite5/'.

Validation Complete
========== Build: 1 succeeded or up-to-date, 0 failed, 0 skipped ==========

就是不知道那里错。

那位大大可以教教小弟。
还是帮我看看我的code那里miss掉了。

谢谢各位
回复

使用道具 举报

发表于 27-5-2006 09:30 AM | 显示全部楼层
奇怪了... 我把你的整段code copy去新的file...然后改了database的部分(我用access)... 也根据你的web.config改为acess适用的... 根本没问题... 可以redirect去xx.html和显示wrong username, wrong password... 你是不是记错username and password了??
回复

使用道具 举报

 楼主| 发表于 27-5-2006 11:36 AM | 显示全部楼层
原帖由 小妞儿 于 27-5-2006 09:30 AM 发表
奇怪了... 我把你的整段code copy去新的file...然后改了database的部分(我用access)... 也根据你的web.config改为acess适用的... 根本没问题... 可以redirect去xx.html和显示wrong username, wrong password... 你 ...


这就不可能了,我的database是同一个的。username 和 password 也是一样的。

你是不是也是用odbc来connect呢??
回复

使用道具 举报

Follow Us
发表于 27-5-2006 11:43 AM | 显示全部楼层
我用oledb...
回复

使用道具 举报

 楼主| 发表于 27-5-2006 02:18 PM | 显示全部楼层
原帖由 小妞儿 于 27-5-2006 11:43 AM 发表
我用oledb...


那可以看看你的code吗??
回复

使用道具 举报


ADVERTISEMENT

 楼主| 发表于 27-5-2006 02:55 PM | 显示全部楼层
刚刚做了一个delete的
发现他也不能delete data的。。。
不知道是不是pass values时有错误。
再看看


  1. <%@ Import NameSpace="System.Data" %>
  2. <%@ Import NameSpace="system.Data.odbc" %>
  3. <%@ Page Language="vb" Debug="true" trace="true" %>

  4. <script language="vb" runat="server">

  5. Sub My_click(Sender As Object,E As EventArgs)

  6.         Dim Conn As String = ConfigurationManager.ConnectionStrings("Connstri").ConnectionString
  7.         Dim dbcon As New OdbcConnection(Conn)
  8.        
  9.         Dim uname As String = Replace(Trim(username.Text), "'", "''")
  10.        
  11.         Dim sql As String = "Delete From usertable where username = @uname"
  12.        
  13.         Dim cmd As New OdbcCommand(sql, dbcon)
  14.         dbcon.open()
  15.         cmd.ExecuteNonQuery()
  16.        
  17. End Sub

  18. </script>

  19. <html>
  20. <head>
  21. <meta http-equiv="Content-Language" content="en-us">
  22. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  23. <title>Login</title>
  24. </head>
  25. <body>
  26. <form runat="server">
  27. <table border="0" width="100%" cellspacing="0" cellpadding="0" id="table1">
  28.         <tr>
  29.                 <td width="104">&nbsp;</td>
  30.                 <td><asp:Label ID="lblAlert" Runat="server" Text="Please Key In Username And Password"/></td>
  31.         </tr>
  32.         <tr>
  33.                 <td width="104">username</td>
  34.                 <td><asp:TextBox ID="username" Runat="server" Columns="20"/></td>
  35.         </tr>
  36.         <tr>
  37.                 <td width="104">password</td>
  38.                 <td><asp:TextBox ID="password" Runat="server" Columns="20"/></td>
  39.         </tr>
  40.         <tr>
  41.                 <td colspan="2"><asp:Button id="My" runat="server" OnClick="My_click" Text="Login"/>
  42.         </td>
  43.         </tr>
  44. </table>
  45. </form>
  46. </body>
  47. </html>
复制代码

[ 本帖最后由 红发 于 27-5-2006 03:01 PM 编辑 ]
回复

使用道具 举报

发表于 27-5-2006 05:06 PM | 显示全部楼层
原帖由 红发 于 27-5-2006 02:18 PM 发表


那可以看看你的code吗??

  1. <%@ Page Language="vb" Debug="true" %>
  2. <%@ import Namespace="System.Data" %>
  3. <%@ import Namespace="system.Data.oledb" %>
  4. <script runat="server">

  5.     Sub My_click(Sender As Object,E As EventArgs)
  6.    
  7.              Dim Conn As String = ConfigurationManager.ConnectionStrings("ConnectionString").ConnectionString
  8.              Dim dbcon As New oledbConnection(Conn)
  9.    
  10.              Dim uname As String = Replace(Trim(username.Text), "'", "''")
  11.              Dim pwd As String = Replace(Trim(password.Text), "'", "''")
  12.    
  13.              Const sql As String = "SELECT password FROM useracc where username=@uname"
  14.    
  15.              Dim cmd As New oledbCommand(sql, dbcon)
  16.    
  17.              dbcon.open()
  18.    
  19.              Dim param As New oledbParameter
  20.    
  21.              param = cmd.Parameters.Add("@uname", oledbType.VarChar, 50)
  22.              param.Direction = ParameterDirection.Input
  23.              param.Value = uname
  24.    
  25.              Dim dr As oledbDataReader = cmd.ExecuteReader(CommandBehavior.CloseConnection)
  26.    
  27.                      If dr.Read() Then
  28.    
  29.                              If Trim(dr("password")) = pwd Then
  30.                                      FormsAuthentication.SetAuthCookie(uname, False)
  31.                                      FormsAuthentication.RedirectFromLoginPage(uname, False)
  32.                                      Response.Redirect("xx.html")
  33.                              Else
  34.                                      lblAlert.Text = "Wrong password"
  35.                              End If
  36.    
  37.                      Else
  38.                              lblAlert.Text = "Wrong Username"
  39.                      End If
  40.    
  41.              dr.close()
  42.              dbcon.close()
  43.    
  44.              Response.write(uname)
  45.              Response.write("<br>")
  46.              Response.write(pwd)
  47.     End Sub

  48. </script>
  49. <html>
  50. <head>
  51.     <title>Login</title>
  52.     <meta http-equiv="Content-Language" content="en-us" />
  53.     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  54. </head>
  55. <body>
  56.     <form runat="server">
  57.         <table id="table1" cellspacing="0" cellpadding="0" width="100%" border="0">
  58.             <tbody>
  59.                 <tr>
  60.                     <td width="104">
  61.                         &nbsp;</td>
  62.                     <td>
  63.                         <asp:Label id="lblAlert" runat="server" text="Please Key In Username And Password"></asp:Label></td>
  64.                 </tr>
  65.                 <tr>
  66.                     <td width="104">
  67.                         username</td>
  68.                     <td>
  69.                         <asp:TextBox id="username" Columns="20" Runat="server"></asp:TextBox>
  70.                     </td>
  71.                 </tr>
  72.                 <tr>
  73.                     <td width="104">
  74.                         password</td>
  75.                     <td>
  76.                         <asp:TextBox id="password" Columns="20" Runat="server"></asp:TextBox>
  77.                     </td>
  78.                 </tr>
  79.                 <tr>
  80.                     <td colspan="2">
  81.                         <asp:Button id="My" onclick="My_click" runat="server" Text="Login"></asp:Button>
  82.                     </td>
  83.                 </tr>
  84.             </tbody>
  85.         </table>
  86.     </form>
  87. </body>
  88. </html>
复制代码


  1. <?xml version="1.0" encoding="UTF-8" ?>

  2. <configuration>


  3.     <connectionStrings>
  4.         <add name="connectionString" connectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\ASP.Net\Blog\blog.mdb"
  5.             providerName="system.data.oledb" />
  6.     </connectionStrings>


  7. </configuration>
复制代码
回复

使用道具 举报

发表于 27-5-2006 05:16 PM | 显示全部楼层
原帖由 红发 于 27-5-2006 02:55 PM 发表
刚刚做了一个delete的
发现他也不能delete data的。。。
不知道是不是pass values时有错误。
再看看


<%@ Import NameSpace="System.Data" %>
<%@ Import NameSpace="system.Dat ...


你忘了add parameter...
回复

使用道具 举报

 楼主| 发表于 28-5-2006 10:40 PM | 显示全部楼层
原帖由 小妞儿 于 27-5-2006 05:16 PM 发表


你忘了add parameter...


可是但我这样写的时候是可以delete我的record的哦

  1. Dim sql As String  = "Delete From usertable where username ='"&request("username")&"'"
复制代码


但是当我这样写的时候


  1. tt = Request("username")       
  2. Dim sql As String  = "Delete From usertable where username ='"&tt&"'"
复制代码


就中了error了
BC30205: End of statement expected.
Dim sql As String  = "Delete From usertable where username ='"&tt&"'"

这又是什么问题了呢????

上面我有放
Dim tt
or
Dim tt As String <- 觉得这个有问题

[ 本帖最后由 红发 于 28-5-2006 10:43 PM 编辑 ]
回复

使用道具 举报

发表于 28-5-2006 10:59 PM | 显示全部楼层
原帖由 红发 于 28-5-2006 10:40 PM 发表

tt = Request("username")        
Dim sql As String  = "Delete From usertable where username ='"&tt&"'"


既然 tt 已经 assigned 一个 value 了... 那么 sql 应该是

dim sql as string = "delete from usertable where username =" & tt

试试看...
回复

使用道具 举报

发表于 28-5-2006 11:07 PM | 显示全部楼层
原帖由 红发 于 28-5-2006 10:40 PM 发表


可是但我这样写的时候是可以delete我的record的哦

Dim sql As String  = "Delete From usertable where username ='"&request("username"&"'"


但是当我这样 ...


如果你的 tt 是 string 不是一个号码, 那么你也许得检查下里面有没有包含 " ' ", " " " 这些字.
回复

使用道具 举报

 楼主| 发表于 29-5-2006 09:12 AM | 显示全部楼层
原帖由 小妞儿 于 28-5-2006 10:59 PM 发表


既然 tt 已经 assigned 一个 value 了... 那么 sql 应该是

dim sql as string = "delete from usertable where username =" & tt

试试看...


现在没有的test晚上再test看能不能

原帖由 goatstudio 于 28-5-2006 11:07 PM 发表


如果你的 tt 是 string 不是一个号码, 那么你也许得检查下里面有没有包含 " ' ", " " " 这些字.


100%是string

100%没有 ' and " 的东西出现
回复

使用道具 举报

 楼主| 发表于 29-5-2006 10:58 PM | 显示全部楼层
原帖由 小妞儿 于 28-5-2006 10:59 PM 发表


既然 tt 已经 assigned 一个 value 了... 那么 sql 应该是

dim sql as string = "delete from usertable where username =" & tt

试试看...


可惜可惜,还是不能

为何我的问题都没有什么人来回答得呢???
还是问题太容易了??
回复

使用道具 举报


ADVERTISEMENT

发表于 30-5-2006 01:18 AM | 显示全部楼层
其实回到你原本的code... 只要add 一个parameter就没问题了...

你的code是这样:


Dim Conn As String = ConfigurationManager.ConnectionStrings("Connstri").ConnectionString
        Dim dbcon As New OdbcConnection(Conn)
        
        Dim uname As String = Replace(Trim(username.Text), "'", "''")
        
        Dim sql As String = "Delete From usertable where username = @uname"
        
        Dim cmd As New OdbcCommand(sql, dbcon)
        dbcon.open()
        cmd.ExecuteNonQuery()


你delete不到是因为你没add parameter

只要在Dim cmd As New OdbcCommand(sql, dbcon)下面加这行code应该就行了...

cmd.parameters.add(new odbcparameter("@uname", username.text))

再试试看... 在不行的话请该把error message贴出来... 比较容易分析... :)

[ 本帖最后由 小妞儿 于 30-5-2006 01:20 AM 编辑 ]
回复

使用道具 举报

发表于 30-5-2006 07:34 AM | 显示全部楼层
用parameter 还有stored procedure 就不用烦恼漏掉什么开引号,挂号的烦恼咯。。
回复

使用道具 举报

 楼主| 发表于 30-5-2006 09:22 AM | 显示全部楼层
原帖由 tensaix2j 于 30-5-2006 07:34 AM 发表
用parameter 还有stored procedure 就不用烦恼漏掉什么开引号,挂号的烦恼咯。。



想问一下,parameter 和 stored procedure 这两个的用处。
可以说明一下吗?

谢谢。
回复

使用道具 举报

 楼主| 发表于 30-5-2006 09:23 AM | 显示全部楼层
回小妞儿

不是我不要写error出来。。。

是没有error我如何写。。。。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

 

ADVERTISEMENT



ADVERTISEMENT



ADVERTISEMENT

ADVERTISEMENT


版权所有 © 1996-2023 Cari Internet Sdn Bhd (483575-W)|IPSERVERONE 提供云主机|广告刊登|关于我们|私隐权|免控|投诉|联络|脸书|佳礼资讯网

GMT+8, 5-8-2025 11:55 AM , Processed in 0.150224 second(s), 21 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表