c#ADO.NET 执行带参数及有返回数据(count)

网友投稿 796 2022-09-11

c#ADO.NET 执行带参数及有返回数据(count)

c#ADO.NET 执行带参数及有返回数据(count)

直接上代码,这个过程中有个数据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 = begin;

SqlParameter para1 = new SqlParameter("@ad_end", SqlDbType.DateTime);//参数名称,类型,大小

para1.Value = end;

SqlParameter para2 = new SqlParameter("@ClientName", SqlDbType.NVarChar, 100);//参数名称,类型,大小

para2.Value = 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;

}

}

///

/// SqlDataReader 转成 DataTable

///

///

///

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);

}

}

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:ping 命令
下一篇:windows快捷键--日常办公
相关文章

 发表评论

暂时没有评论,来抢沙发吧~