public class Counter : Microsoft.SharePoint.WebPartPages.WebPart
{
// private const string defaultText = "";
//
// private string text = defaultText;
const string strDBUser="";
const string strDBUserPWD="";
const string strDBHostName="";
const string strDBName="";
const int TimeDiff=0;
const bool __IsOnLine =false;
const bool __IsShowOnLine =false;
private string _strDBUser;
private string _strDBUserPWD;
private string _strDBHostName;
private string _strDBName;
private int _TimeDiff;
private bool _IsOnLine;
private bool _IsShowOnLine;
// [Category("资料库连线帐号")]
[Category("Custom Properties")]
[DefaultValue(strDBUser)]
[WebPartStorage(Storage.Shared)]
[FriendlyNameAttribute("请设定资料库连线帐号")]
[Description("请设定资料库连线帐号")]
[Browsable(true)]
[XmlElement(ElementName="strUser")]
public string strUser{get{return _strDBUser;} set{_strDBUser = value;}}
//[Category("资料库连线帐号之密码")]
[Category("Custom Properties")]
[DefaultValue(strDBUserPWD)]
[WebPartStorage(Storage.Shared)]
[FriendlyNameAttribute("请设定资料库连线帐号密码")]
[Description("请设定资料库连线帐号密码")]
[Browsable(true)]
[XmlElement(ElementName="strUserPWD")]
public string strUserPWD{get{return _strDBUserPWD;} set{_strDBUserPWD = value;}}
// [Category("资料库主机名称")]
[Category("Custom Properties")]
[DefaultValue(strDBHostName)]
[WebPartStorage(Storage.Shared)]
[FriendlyNameAttribute("请设定资料库主机名称")]
[Description("请设定资料库主机名称")]
[Browsable(true)]
[XmlElement(ElementName="strDBHost")]
public string strDBHost{get{return _strDBHostName;} set{_strDBHostName = value;}}
//[Category("资料库名称")]
[Category("Custom Properties")]
[DefaultValue(strDBName)]
[WebPartStorage(Storage.Shared)]
[FriendlyNameAttribute("请设定资料库名称")]
[Description("请设定资料库名称")]
[Browsable(true)]
[XmlElement(ElementName="strDataBaseName")]
public string strDataBaseName{get{return _strDBName;} set{_strDBName = value;}}
// [Category("计算时间")]
[Category("Custom Properties")]
[DefaultValue(TimeDiff)]
[WebPartStorage(Storage.Shared)]
[FriendlyNameAttribute("请填入SessionTimeOut时间")]
[Description("请填入SessionTimeOut时间")]
[Browsable(true)]
[XmlElement(ElementName="sTimeDiff")]
public int sTimeDiff{get{return _TimeDiff;} set{_TimeDiff = value;}}
// [Category("")]
[Category("Custom Properties")]
[DefaultValue(__IsOnLine)]
[WebPartStorage(Storage.Shared)]
[FriendlyNameAttribute("是否显示线上人数")]
[Description("是否显示线上人数")]
[Browsable(true)]
[XmlElement(ElementName="IsOnLine")]
public bool IsOnLine{get{return _IsOnLine;} set{_IsOnLine = value;}}
// [Category("")]
[Category("Custom Properties")]
[DefaultValue(__IsShowOnLine)]
[WebPartStorage(Storage.Shared)]
[FriendlyNameAttribute("是否显示线上人名")]
[Description("是否显示线上人名")]
[Browsable(true)]
[XmlElement(ElementName="IsShowOnLine")]
public bool IsShowOnLine{get{return _IsShowOnLine;} set{_IsShowOnLine = value;}}
public int GetLoginCount()
{
int i;
try
{
string strConn="packet size=4096;user id=" + strUser + ";password=" + strUserPWD + ";data source=" + strDBHost + ";persist security info=true;initial catalog=" + strDataBaseName ;
SqlConnection myConnection =new SqlConnection(strConn);
string strSQL= "exec GetLoginCount " ;
SqlDataAdapter da=new SqlDataAdapter(strSQL, myConnection);
DataSet ds =new DataSet();
da.Fill(ds);
i =Convert.ToInt32(ds.Tables[0].Rows[0].ItemArray[0]);
myConnection.Close();
}
catch(System.IndexOutOfRangeException ee)
{
i=0;
}
return i;
}
public int GetOnLineCount()
{
int i;
try
{
string strConn="packet size=4096;user id=" + strUser + ";password=" + strUserPWD + ";data source=" + strDBHost + ";persist security info=true;initial catalog=" + strDataBaseName ;
SqlConnection myConnection =new SqlConnection(strConn);
string strSQL= "exec GetOnLineCount " + sTimeDiff ;
SqlDataAdapter da=new SqlDataAdapter(strSQL, myConnection);
DataSet ds =new DataSet();
da.Fill(ds);
i=ds.Tables[0].Rows.Count;
myConnection.Close();
}
catch(System.IndexOutOfRangeException ee)
{
i=0;
}
return i;
}
public DataTable GetOnLine()
{
DataTable dt;
try
{
string strConn="packet size=4096;user id=" + strUser + ";password=" + strUserPWD + ";data source=" + strDBHost + ";persist security info=true;initial catalog=" + strDataBaseName ;
SqlConnection myConnection =new SqlConnection(strConn);
string strSQL= "exec GetOnLineCount " + sTimeDiff ;
SqlDataAdapter da=new SqlDataAdapter(strSQL, myConnection);
DataSet ds =new DataSet();
da.Fill(ds);
dt =ds.Tables[0];
myConnection.Close();
}
catch(System.IndexOutOfRangeException ee)
{
dt =null;
}
return dt;
}
private bool IsNum(string strValue)
{
try
{
int Num = int.Parse(strValue);
return true;
}
catch(Exception Ex)
{
string Msg = Ex.Message;
return false;
}
}
public string chkConnection()
{
string strMsg="";
try
{
string strConn="packet size=4096;user id=" + strUser + ";password=" + strUserPWD + ";data source=" + strDBHost + ";persist security info=true;initial catalog=" + strDataBaseName ;
SqlConnection myConnection =new SqlConnection(strConn);
string strSQL="select count(*) from LoginInfo";
SqlCommand chkDBComm=new SqlCommand(strSQL,myConnection);
myConnection.Open();
chkDBComm.ExecuteNonQuery();
myConnection.Close();
strMsg= "ok";
return strMsg;
}
catch(SqlException ee)
{
strMsg=ee.Message.ToString();
return strMsg;
}
}
protected override void RenderWebPart(HtmlTextWriter output)
{
try
{
if (chkConnection() =="ok")
{
int i = GetLoginCount();
string sUI="";
sUI+="<table><tr><td size='2'>你是本站第 <FONT color='#ff0000'>" + i.ToString() + "</font> 位访客</td></tr></table>";
if(IsOnLine)
{
if(IsNum(sTimeDiff.ToString()))
{
int k = GetOnLineCount();
sUI+="<table><tr><td size='2'>目前站上共有 <FONT color='#ff0000'>" + k.ToString() + "</font> 位访客</td></tr></table>";
if(IsShowOnLine)
{
DataTable dt = GetOnLine();
if(dt.Rows.Count > 0)
{
for(int s=0;s < dt.Rows.Count ;s++)
{
sUI+="<font size='1'>" + dt.Rows[s].ItemArray[0].ToString() + "</font> ";
}
}
}
}
else
{
sUI+="<FONT color='#ff0000'>SessionTimeOut请输入整数</Font>";
}
}
output.Write(sUI);
}
else
{
switch (chkConnection())
{
case "使用者 'sa' 的登入失败。":
output.Write("资料库连线密码错误!");
break;
case "使用者 '(null)' 的登入失败。原因: 未结合受信任的 SQL Server 连线。":
output.Write("资料库连线帐号错误!");
break;
case "SQL Server 不存在或拒绝存取。":
output.Write("资料库主机名称错误或拒绝存取");
break;
case "无效的物件名称 'LoginInfo'。":
output.Write("资料库名称错误");
break;
default:
output.Write(chkConnection());
break;
}
}
}
catch(Exception ee)
{
output.Write(ee.ToString());
}
}
}
浙公网安备 33010602011771号