直接上代碼,這個程序中有個資料SqlDataReader轉為 DataTable的程序,當中為什么這樣,是應為我直接系結DataSource的時候沒有資料,網人家說直接系結但是沒效果,我就轉換了一下,
//存盤程序
public static DataTable GetTableaToPROCEDURE(string ProcName,DateTime begin,DateTime end,string Name, string strcon)
{
using (SqlConnection conn = new SqlConnection(strcon))
{
conn.Open();
SqlCommand cmd = new SqlCommand();
cmd.CommandTimeout = 1000;
cmd.Connection = conn;
cmd.CommandText = ProcName;//需要呼叫的存盤程序
cmd.CommandType = CommandType.StoredProcedure;
SqlParameter para0 = new SqlParameter("@ad_begin", SqlDbType.DateTime);//引數名稱,型別,大小
para0.Value = https://www.cnblogs.com/lijunfengcz/p/begin;
SqlParameter para1 = new SqlParameter("@ad_end", SqlDbType.DateTime);//引數名稱,型別,大小
para1.Value = https://www.cnblogs.com/lijunfengcz/p/end;
SqlParameter para2 = new SqlParameter("@ClientName", SqlDbType.NVarChar, 100);//引數名稱,型別,大小
para2.Value = https://www.cnblogs.com/lijunfengcz/p/Name;
cmd.Parameters.Add(para0);
cmd.Parameters.Add(para1);
cmd.Parameters.Add(para2);
//獲得資料
SqlDataReader sqlDate = cmd.ExecuteReader();//執行完后關閉連接
DataTable dt = new DataTable();//新建一個臨時表存放結果
dt= ConvertDataReaderToDataTable(sqlDate);
return dt;
}
}
/// <summary>
/// SqlDataReader 轉成 DataTable
/// </summary>
/// <param name="dataReader"></param>
/// <returns></returns>
private static DataTable ConvertDataReaderToDataTable(SqlDataReader dataReader)
{
///定義DataTable
DataTable datatable = new DataTable();
try
{ ///動態添加表的資料列
for (int i = 0; i < dataReader.FieldCount; i++)
{
DataColumn myDataColumn = new DataColumn();
myDataColumn.DataType = dataReader.GetFieldType(i);
myDataColumn.ColumnName = dataReader.GetName(i);
datatable.Columns.Add(myDataColumn);
}
///添加表的資料
while (dataReader.Read())
{
DataRow myDataRow = datatable.NewRow();
for (int i = 0; i < dataReader.FieldCount; i++)
{
myDataRow[i] = dataReader[i].ToString();
}
datatable.Rows.Add(myDataRow);
myDataRow = null;
}
///關閉資料讀取器
dataReader.Close();
return datatable;
}
catch (Exception ex)
{
///拋出型別轉換錯誤
//SystemError.CreateErrorLog(ex.Message);
throw new Exception(ex.Message, ex);
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/110583.html
標籤:C#
上一篇:占位符使用(豎式計算)
下一篇:C# 8 - 其它新特性
