C#web服务从sql服务器获取数据

问题描述:

我连接SQL服务器数据库,并使用用户名和密码值返回xml布尔值true。但是我想根据用户名查询的结果得到sicilKod的值。我该怎么做?C#web服务从sql服务器获取数据

该返回布尔值,根据用户名和密码

[的WebMethod]

public bool login(string unamePI, string passPI) 
{ 
    DataTable mytable = new DataTable(); 
    bool mydeger = false; 
    mytable = GetTableWithQueryParams("select * from UYE where USERNAME ={0} and PASSWORD={1}", unamePI, passPI); 

    if (mytable.Rows.Count > 0) 
    { 
     mydeger = true; 
    } 
    else 
    { 
     return mydeger; 
    } 
    string de = mytable.Rows[0].ToString(); 
    return mydeger; 
} 

数据库连接:

public static DataTable GetTableWithQueryParams(string SQLCommandText, params object[] myParametres) 
{ 
    string aConnectionString = "Data Source = ..; Initial Catalog = mydatabase; Persist Security Info = True; User ID = ..; Password = .."; 
    SqlConnection SqlConn = new SqlConnection(aConnectionString); 
    SqlCommand MyCommand = new SqlCommand("", SqlConn); 
    DataTable MyTable = new DataTable(); 

    try 
    { 
     int i = 0; 
     SqlConn.Open(); 
     foreach (object MyObject in myParametres) 
     { 
      if (SQLCommandText.Contains("{" + i.ToString() + "}")) 
      { 
       SQLCommandText = SQLCommandText.Replace("{" + i.ToString() + "}", "@Prm" + i.ToString()); 
       MyCommand.Parameters.AddWithValue("Prm" + i.ToString(), MyObject); 
       i++; 
      } 
     } 
     MyCommand.CommandText = SQLCommandText; 
     SqlDataReader MyReader = MyCommand.ExecuteReader(); 
     MyTable.Load(MyReader); 
     SqlConn.Close(); 
     MyReader.Dispose(); 
    } 
    catch (Exception ex) 
    { 
     throw new Exception(SQLCommandText + "\n" + ex.Message); 
    } 
    finally 
    { 
     SqlConn.Dispose(); 
     MyCommand.Dispose(); 
    } 
    return MyTable; 
} 
+0

您是否尝试将'de'变量设置为mytable.Rows [0] [“SicilKod”]。ToString()? – Badiparmagi

+0

了解如何解释您的问题。 – mybirthname

改变你的方法了这一点。

public string login(string unamePI, string passPI) 
{ 
    DataTable mytable = new DataTable(); 
    string result = ""; 
    mytable = GetTableWithQueryParams("select * from UYE where USERNAME ={0} and PASSWORD={1}", unamePI, passPI); 

    if (mytable.Rows.Count > 0) 
    { 
     result = string.Format("Welcome {0}", mytable.Rows[0]["sicilKod"].ToString()); 
    } 

    return result; 

} 

然后检查登录方法返回值是否为空。

+0

System.ArgumentException:'sicilKod的ü tunu,tablosuna aitdeğil。 konum:System.Data.DataRow.GetDataColumn(字符串COLUMNNAME) konum:System.Data.DataRow.get_Item(字符串COLUMNNAME) konum:LoginCpm.WebService1.login(字符串unamePI,字符串passPI) –

+0

@EmreAslan确实sicilKod在存在UYE表? – Badiparmagi

+0

是的,我有sicilKod.I从android应用程序的用户名和密码发送值。如果它有用户,然后它做登录应用程序。 –