ng 一、原理需要跟我们使用企业管理器登陆创建数据库是一致的、所以我们需要登陆数据库、可使用windows的帐号、或者sql用户名来登陆我们要有足够的权限来做的,所以用sa用户。
二、我们需要使用到ms的一个sqladmin.dll。大家到网上可以找到。如果找不到可联系我。
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using SqlAdmin;
using SqlAdmin.Controls;
namespace cendy
{
/// <summary>
/// ms_sql 的摘要说明。
/// </summary>
public class ms_sql : System.Web.UI.Page
{
protected System.Web.UI.WebControls.TextBox DatabaseNameTextBox;
protected System.Web.UI.WebControls.Label ErrorCreatingLabel;
protected System.Web.UI.WebControls.Button sql_but;
private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
LoginButton_Click("sa","aaaaa","(local)","sql");//使用LoginButton_Click()方式登陆数据库服务器
}
public void LoginButton_Click(string _username,string _userpass,string _slocal,string _lsql)
{
//本事例是采用sa登陆的、也就是sql登陆方式。
bool useIntegrated;
SqlServer server;
SqlAdmin.Security security = new SqlAdmin.Security();
if(_lsql=="windows")
{
if (security.WebServer == "iis" && System.Security.Principal.WindowsIdentity.GetCurrent().Name != _username)
{
Response.Write("IIS verion of SQL Web Admin doesn't support windows logins other than your own.<br>");
}
try
{
server = new SqlServer(_slocal, _username, _userpass, true);
useIntegrated = true;
}
catch (System.ComponentModel.Win32Exception w32Ex)
{
Response.Write("Invalid username and/or password, or server does not exist."+w32Ex.ToString());
return;
}
catch (Exception ex)
{
Response.Write(ex.Message);
return;
}
}
else
{
server = new SqlServer(_slocal, _username, _userpass, false);
useIntegrated = false;
}
if (server.IsUserValid())
{
if (useIntegrated)
{
AdminUser.CurrentUser = new AdminUser(_username, _userpass, _slocal, true);
security.WriteCookieForFormsAuthentication(
server.Username,
server.Password,
false,
SqlLoginType.NTUser);
}
else
{
AdminUser.CurrentUser = new AdminUser(_username, _userpass, _slocal, false);
security.WriteCookieForFormsAuthentication(
server.Username,
server.Password,
false,
SqlLoginType.Standard);
}
//Response.Redirect("databases.aspx");
}
else
{
Response.Write("Invalid username and/or password, you are using a windows login that is not your own, or server does not exist.<br>");
}
}
protected void CreateNewDatabaseButton_Click(object sender, System.EventArgs e)
{
SqlServer server = SqlServer.CurrentServer;
ErrorCreatingLabel.Visible = false;
bool success = true;
server.Connect();
if (server.Databases[DatabaseNameTextBox.Text] != null)
{
ErrorCreatingLabel.Visible = true;
ErrorCreatingLabel.Text = "数据库已经存在!";
server.Disconnect();
return;
}
try
{
SqlDatabase newDatabase = server.Databases.Add(DatabaseNameTextBox.Text);
}
catch (Exception ex)
{
ErrorCreatingLabel.Visible = true;
ErrorCreatingLabel.Text = "There was an error creating the database.<br>" + Server.HtmlEncode(ex.Message).Replace("/n", "<br>");
success = false;
}
server.Disconnect();
if (success)
Response.Redirect("http://192.168.0.26/webadmin/default.aspx");
}
#region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}
/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.Load += new System.EventHandler(this.Page_Load);
}
#endregion
}
}