Subsonic3에서 linq 템플릿을 사용하여 MySQL 저장 프로 시저를 실행하려고했습니다. 저장 프로 시저 참조 클래스를 생성 한 것으로 보이는 MySQL.ttinclude 파일에 몇 가지 함수를 추가했습니다. Subsonic3 작업Subsonic3, linq, MySQL 및 저장 프로 시저로 성공한 사람이 있습니까?
public DataSet SPTotalCallsByHour(int period)
{
rt.rtDB ee = new rt.rtDB();
StoredProcedure sp = ee.Totals_By_Hour(period.ToString());
sp.Execute();
return (DataSet)sp.Output;
}
사람이 MySQL은 저장 가지고 절차 : 내가 코드를 실행하고 나는 것 같다 저장 프로 시저를 호출 할 때 항상 NULL 결과를 얻을? 그렇다면 어떻게 일하게했는지 설명해주십시오.
ttinclude 파일을 subsonic 3 릴리스에서 곧바로 사용 했습니까?
List<SPParam> GetSPParams(string spName){
var result=new List<SPParam>();
MySqlCommand cmd = new MySqlCommand();
using(conn=new MySqlConnection(ConnectionString))
{
conn.Open();
cmd.Connection = conn;
cmd.CommandText = spName;
cmd.CommandType = CommandType.StoredProcedure;
try
{
MySqlCommandBuilder.DeriveParameters(cmd);
}
catch
{
}
if(cmd.Parameters.Count > 0)
{
foreach(MySqlParameter param in cmd.Parameters)
{
SPParam p = new SPParam();
p.SysType = GetSysType(param.MySqlDbType.ToString());
p.DbType = param.DbType.ToString();
p.Name = param.ParameterName;
p.CleanName=CleanUp(p.Name);
result.Add(p);
}
}
conn.Close();
}
return result;
}
List<SP> GetSPs(){
var result=new List<SP>();
string[] spNames = GetSPList();
foreach(string spName in spNames){
var sp=new SP();
sp.Name=spName;
sp.CleanName=CleanUp(sp.Name);
sp.Parameters=GetSPParams(sp.Name);
result.Add(sp);
}
return result;
} 내가 MySQL과 아음속 작동하는 저장 프로 시저를 가지고 적이없는
왜 비어있는 catch 블록이 있습니까? 그것은 거의 결코 좋지 않습니다. –
나는 게으르다. 아직이 클래스를 완성하지 못했다. 나중에 일반적으로 예외 처리를 추가한다. –