net中的Web服务

本文关键字:服务 Web 中的 net | 更新日期: 2023-09-27 18:19:26

我第一次尝试在.net.中使用Web服务

下面是我的代码c#,但我不理解,因为字符串结果没有赋值。

如果尝试删除If(reader.HasRows)行中的控件,则分配字符串结果

如何检查Users表中字符串电子邮件的存在?

我的代码中的错误在哪里?

using System;
using System.Configuration;
using System.Data;
using System.Data.Odbc;
using System.Web.Services;
[WebService(Namespace = "http:/.../ws")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
public class ws : System.Web.Services.WebService
{
    [WebMethod]
    public string es(string email)
    {
        string result;
        using (OdbcConnection conn =
            new OdbcConnection(ConfigurationManager.ConnectionStrings["cs"].ConnectionString))
        {
            using (OdbcCommand command = new OdbcCommand())
            {
                command.Parameters.Clear();
                command.CommandText = "Select Email From tblUsers where email = ?;";
                command.Parameters.AddWithValue("param1", email.ToString());
                command.Connection = conn;
                conn.Open();
                command.CommandType = CommandType.Text;
                OdbcDataReader reader = command.ExecuteReader();
                try
                {
                    if (reader.HasRows)
                    {
                        result = "1";
                    }
                }
                catch (Exception ex)
                {
                    return ex.ToString();
                }
                finally
                {
                    if (conn.State == ConnectionState.Open)
                    {
                        conn.Close();
                    }
                }
            }
            return result;
        }
    }
}

net中的Web服务

First off email已经是一个字符串,所以不需要.ToString()it.

其次,(除非您使用的是.NET 3.0之前的版本)不要使用经典的ASMX web服务,而是使用WCF。网站上有大量关于IIS 上托管的WCF web服务的资源

第三,在运行任何email != null之前,您可能应该对电子邮件参数执行null检查,或者更好的是,检查空字符串和string.IsNullOrWhiteSpace(email),如果使用.NET 3.5或更早版本,请使用IsNullOrEmpty

最后,为了回答您的问题,要检查您的第一列(col 0),电子邮件是否为null,您可以执行reader.IsDBNull(0),但要测试它是否为空字符串,您需要读取值(假设它不是null),然后进行检查,除非您通过SQL(谷歌)执行

此外,还可以使用SqlCommand、SqlDataReader和SqlConnection。除非您正在与其他数据库系统(SQL Server除外)接口,并且绝对必须使用ODBC。