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;
}
}
}
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。