我正在使用3层架构在C#中进行项目。我编写了代码来对SQL中的记录进行排序。但它不会返回任何值。
查询:
BEGIN
SELECT
Bank_Code, Bank_Name, Bank_ShortName, CreditCard_Commission_Percent
FROM
BankMaster
WHERE
bank_name LIKE '% + @BankName + %'
END
调用查询 - BOL:
public DataSet SortBank()
{
try
{
SqlCommand cmd = new SqlCommand("SortBankMaster", dal.con);
cmd.Parameters.Add("@BankName", SqlDbType.NVarChar).Value = Bank_Name;
cmd.CommandType = CommandType.StoredProcedure;
return cmd.ExecuteReader(); // Error
}
catch (Exception ex)
{
throw ex;
}
}
用户界面:
public void FillSortBank()
{
try
{
DataSet ds = new DataSet();
bol.Bank_Name = txtsort.Text;
ds = bol.SortBank();
DGVBank.DataSource = ds.Tables[0];
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
这是我的DAL:
public DataSet DBread(String Squery)
{
DataSet DSResult = new DataSet();
try
{
if (con.State == ConnectionState.Closed)
{
con.Open();
}
da = new SqlDataAdapter(Squery, con);
da.Fill(DSResult);
Console.WriteLine();
return DSResult;
}
catch (Exception ex)
{
//UnhandledExceptionHandler();
//return e.ToString();
throw ex;
//return DSResult;
}
}
感谢所有人......
答案 0 :(得分:1)
....
using (SqlDataReader myReader = cmd.ExecuteReader())
{
DataTable myTable = new DataTable();
myTable.Load(myReader);
cmd.Connection.Close();
Dim myDataSet As New DataSet()
myDataSet.Tables.Add(myTable)
return myDataSet;
}
答案 1 :(得分:0)
DataTable.Fill您可以用来从阅读器填充数据表。
答案 2 :(得分:0)
您不能只将SqlDataReader转换为DataSet。如果需要,可以使用SqlDataAdapter填充数据集
SqlCommand cmd = new SqlCommand("SortBankMaster", dal.con);
cmd.Parameters.Add("@BankName", SqlDbType.NVarChar).Value = Bank_Name;
cmd.CommandType = CommandType.StoredProcedure;
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataSet ds = new DataSet();
da.Fill(ds);
如果您不使用DataSet,则可以使用DataTable。
DataTable dt = new DataTable();
da.Fill(dt);
答案 3 :(得分:0)
public DataSet SortBank()
{
try
{
SqlCommand cmd = new SqlCommand("SortBankMaster", dal.con);
cmd.Parameters.Add("@BankName", SqlDbType.NVarChar).Value = Bank_Name;
cmd.CommandType = CommandType.StoredProcedure;
SqlDataAdapter adpt = new SqlDataAdapter(cmd);
DataSet ds = new DataSet();
adpt.Fill(ds);
return ds;
}
catch (Exception ex)
{
throw ex;
}
}