获取数据库时间,根据数据库时间来修改计算机系统的时间!

解决方案 »

  1.   

    using System.Drawing; 
    using System.Collections; 
    using System.ComponentModel; 
    using System.Windows.Forms; 
    using System.Data; 
    using System.Runtime.InteropServices; namespace WindowsApplication1 

    [StructLayout(LayoutKind.Sequential)] 
    public struct SystemTime 

    public ushort wYear; 
    public ushort wMonth; 
    public ushort wDayOfWeek; 
    public ushort wDay; 
    public ushort wHour; 
    public ushort wMinute; 
    public ushort wSecond; 
    public ushort wMiliseconds; 
    } public class Win32 

    [DllImport("Kernel32.dll")] 
    public static extern bool SetSystemTime( ref SystemTime sysTime ); 
    [DllImport("Kernel32.dll")] 
    public static extern void GetSystemTime(ref SystemTime sysTime); 

    /// <summary> 
    /// Form1 的摘要说明。 
    /// </summary> 
    public class Form1 : System.Windows.Forms.Form 

    private System.Windows.Forms.Button button1; 
    private System.Windows.Forms.TextBox textBox1; 
    private System.Windows.Forms.TextBox textBox2; 
    /// <summary> 
    /// 必需的设计器变量。 
    /// </summary> 
    private System.ComponentModel.Container components = null; public Form1() 

    // 
    // Windows 窗体设计器支持所必需的 
    // 
    InitializeComponent(); // 
    // TODO: 在 InitializeComponent 调用后添加任何构造函数代码 
    // 
    } /// <summary> 
    /// 清理所有正在使用的资源。 
    /// </summary> 
    protected override void Dispose( bool disposing ) 

    if( disposing ) 

    if (components != null) 

    components.Dispose(); 


    base.Dispose( disposing ); 
    } #region Windows 窗体设计器生成的代码 
    /// <summary> 
    /// 设计器支持所需的方法 - 不要使用代码编辑器修改 
    /// 此方法的内容。 
    /// </summary> 
    private void InitializeComponent() 

    this.button1 = new System.Windows.Forms.Button(); 
    this.textBox1 = new System.Windows.Forms.TextBox(); 
    this.textBox2 = new System.Windows.Forms.TextBox(); 
    this.SuspendLayout(); 
    // 
    // button1 
    // 
    this.button1.Location = new System.Drawing.Point(188, 174); 
    this.button1.Name = "button1"; 
    this.button1.TabIndex = 0; 
    this.button1.Text = "button1"; 
    this.button1.Click += new System.EventHandler(this.button1_Click); 
    // 
    // textBox1 
    // 
    this.textBox1.Location = new System.Drawing.Point(56, 12); 
    this.textBox1.Name = "textBox1"; 
    this.textBox1.Size = new System.Drawing.Size(510, 21); 
    this.textBox1.TabIndex = 1; 
    this.textBox1.Text = "textBox1"; 
    // 
    // textBox2 
    // 
    this.textBox2.Location = new System.Drawing.Point(58, 50); 
    this.textBox2.Name = "textBox2"; 
    this.textBox2.Size = new System.Drawing.Size(506, 21); 
    this.textBox2.TabIndex = 2; 
    this.textBox2.Text = "textBox2"; 
    // 
    // Form1 
    // 
    this.AutoScaleBaseSize = new System.Drawing.Size(6, 14); 
    this.ClientSize = new System.Drawing.Size(602, 273); 
    this.Controls.Add(this.textBox2); 
    this.Controls.Add(this.textBox1); 
    this.Controls.Add(this.button1); 
    this.Name = "Form1"; 
    this.Text = "Form1"; 
    this.ResumeLayout(false); } 
    #endregion /// <summary> 
    /// 应用程序的主入口点。 
    /// </summary> 
    [STAThread] 
    static void Main() 

    Application.Run(new Form1()); 
    } private void button1_Click(object sender, System.EventArgs e) 

    textBox1.Text = DateTime.Now.ToLongDateString() + DateTime.Now.ToLongTimeString(); 
    SystemTime sysTime = new SystemTime(); sysTime.wYear = Convert.ToUInt16(DateTime.Now.Year); 
    sysTime.wMonth = Convert.ToUInt16(DateTime.Now.Month); 
    //处置北京时间 
    int nBeijingHour = DateTime.Now.Hour - 8; 
    if (nBeijingHour <= 0) 

    nBeijingHour += 24; 
    sysTime.wDay= Convert.ToUInt16(DateTime.Now.Day - 1); 
    sysTime.wDayOfWeek = Convert.ToUInt16(DateTime.Now.DayOfWeek - 1); 

    else 

    sysTime.wDay= Convert.ToUInt16(DateTime.Now.Day); 
    sysTime.wDayOfWeek = Convert.ToUInt16(DateTime.Now.DayOfWeek); 

    sysTime.wHour = Convert.ToUInt16(nBeijingHour); 
    sysTime.wMinute = Convert.ToUInt16(DateTime.Now.Minute); 
    sysTime.wSecond = Convert.ToUInt16(DateTime.Now.Second); 
    sysTime.wMiliseconds = Convert.ToUInt16(DateTime.Now.Millisecond); Win32.SetSystemTime(ref sysTime); 
    textBox2.Text = DateTime.Now.ToLongDateString() + DateTime.Now.ToLongTimeString(); 


    }
      

  2.   

    我要从SQL 2000 数据库里取数据来改变系统的时间
    运行环境是VS2005
      

  3.   

    #region ComputerTime
            [StructLayout(LayoutKind.Sequential)]
            public struct SystemTime
            {
                public ushort wYear;
                public ushort wMonth;
                public ushort wDayOfWeek;
                public ushort wDay;
                public ushort wHour;
                public ushort wMinute;
                public ushort wSecond;
                public ushort wMiliseconds;
            }
            public class Win32
            {
                [DllImport("Kernel32.dll")]
                public static extern bool SetSystemTime(ref SystemTime SysTime);
                [DllImport("Kernel32.dll")]
                public static extern void GetSystemTime(ref SystemTime SysTime);
            }
            #endregion        #region 时间同步
            /// <summary>
            /// 设置与服务器同步时间 
            /// </summary>
            public void SynchronousTime()
            {
                try
                {
                    #region 更改计算机时间                SystemTime sysTime = new SystemTime();                DateTime ServerTime = 需要更改的时间                sysTime.wYear = Convert.ToUInt16(ServerTime.Year);                sysTime.wMonth = Convert.ToUInt16(ServerTime.Month);                //处置北京时间                 int nBeijingHour = ServerTime.Hour - 8;                if (nBeijingHour <= 0)
                    {
                        nBeijingHour += 24;                    sysTime.wDay = Convert.ToUInt16(ServerTime.Day - 1);                    sysTime.wDayOfWeek = Convert.ToUInt16(ServerTime.DayOfWeek - 1);
                    }
                    else
                    {
                        sysTime.wDay = Convert.ToUInt16(ServerTime.Day);                    sysTime.wDayOfWeek = Convert.ToUInt16(ServerTime.DayOfWeek);
                    }                sysTime.wHour = Convert.ToUInt16(nBeijingHour);                sysTime.wMinute = Convert.ToUInt16(ServerTime.Minute);                sysTime.wSecond = Convert.ToUInt16(ServerTime.Second);                sysTime.wMiliseconds = Convert.ToUInt16(ServerTime.Millisecond);                Win32.SetSystemTime(ref sysTime);                #endregion
                }
                catch
                {
                    //产生错误则不引发异常。
                }
            }
            #endregion==========
    晕死了