从ACCESS转到学习SQL SERVER所遇到的几个问题

    提问:因为刚刚从ACCESS转到学习SQL SERVER,在这里请教各位朋友两个问题:
          1.在ACCESS中所使用的'自动编号'字段,在SQL SERVER中,应该使用什么字段,如果没
            有这样的字段,应该用怎样的办法实现呢?
          2.在ACCESS中,对DATE设置了默认值'NOW()',在SQL SERVER中又应该这样设置呢?
  
    回答:小妖甲:第一个问题可以把这个字段设置为identity字段
                 第二个问题你可以设置DEFAULT (getdate())

         小妖乙:create table tbTest
                 (
                   [id] int identity(1,1),
                   tm datetime default getdate()
                 )
                 详细情况可以看books on line,非常之清楚

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
好的,我可以为您提供一个基于SQL Server的服务器项目框架供您参考。这个项目框架使用C#编写,它包含以下几个部分: 1. 数据库访问层: 使用ADO.NET连接到SQL Server数据库,提供对数据的基本操作,例如查询、插入、更新和删除。 2. 业务逻辑层: 包含业务逻辑的实现,例如用户身份验证、权限管理、数据验证等。 3. Web API层: 使用ASP.NET Web API框架,提供RESTful API接口,用于客户端与服务器之间的通信。 4. 客户端: 可以是Web应用程序、桌面应用程序或移动应用程序,使用HTTP协议与服务器进行通信,处理和显示数据。 下面是一个简单的SQL Server服务器项目的示例代码: 1. 数据库访问层: ```csharp public class DataAccess { private SqlConnection conn; private SqlCommand cmd; public DataAccess(string connectionString) { conn = new SqlConnection(connectionString); cmd = new SqlCommand(); cmd.Connection = conn; } public DataSet ExecuteQuery(string sql) { cmd.CommandText = sql; SqlDataAdapter adapter = new SqlDataAdapter(cmd); DataSet ds = new DataSet(); adapter.Fill(ds); return ds; } public int ExecuteNonQuery(string sql) { cmd.CommandText = sql; conn.Open(); int result = cmd.ExecuteNonQuery(); conn.Close(); return result; } } ``` 2. 业务逻辑层: ```csharp public class UserManager { private DataAccess dataAccess; public UserManager(DataAccess dataAccess) { this.dataAccess = dataAccess; } public bool Authenticate(string username, string password) { string sql = "SELECT COUNT(*) FROM Users WHERE Username = '" + username + "' AND Password = '" + password + "'"; int count = (int)dataAccess.ExecuteQuery(sql).Tables[0].Rows[0][0]; return count > 0; } public bool HasPermission(string username, string permission) { string sql = "SELECT COUNT(*) FROM Permissions WHERE Username = '" + username + "' AND Permission = '" + permission + "'"; int count = (int)dataAccess.ExecuteQuery(sql).Tables[0].Rows[0][0]; return count > 0; } public bool CreateUser(string username, string password) { string sql = "INSERT INTO Users (Username, Password) VALUES ('" + username + "', '" + password + "')"; int result = dataAccess.ExecuteNonQuery(sql); return result > 0; } } ``` 3. Web API层: ```csharp public class UserController : ApiController { private UserManager userManager; public UserController() { string connectionString = ConfigurationManager.ConnectionStrings["MyConnectionString"].ConnectionString; DataAccess dataAccess = new DataAccess(connectionString); userManager = new UserManager(dataAccess); } [HttpGet] public HttpResponseMessage Authenticate(string username, string password) { bool result = userManager.Authenticate(username, password); HttpResponseMessage response = Request.CreateResponse(result ? HttpStatusCode.OK : HttpStatusCode.Unauthorized); return response; } [HttpGet] public HttpResponseMessage HasPermission(string username, string permission) { bool result = userManager.HasPermission(username, permission); HttpResponseMessage response = Request.CreateResponse(result ? HttpStatusCode.OK : HttpStatusCode.Forbidden); return response; } [HttpPost] public HttpResponseMessage CreateUser(string username, string password) { bool result = userManager.CreateUser(username, password); HttpResponseMessage response = Request.CreateResponse(result ? HttpStatusCode.Created : HttpStatusCode.BadRequest); return response; } } ``` 4. 客户端: ```csharp public class Program { public static void Main(string[] args) { string baseUrl = "http://localhost:8080/api/User/"; HttpClient client = new HttpClient(); // 认证用户 string username = "admin"; string password = "password"; HttpResponseMessage response = client.GetAsync(baseUrl + "Authenticate?username=" + username + "&password=" + password).Result; if (response.StatusCode == HttpStatusCode.OK) { Console.WriteLine("Authenticated successfully."); } else { Console.WriteLine("Authentication failed."); } // 检查用户权限 string permission = "create-user"; response = client.GetAsync(baseUrl + "HasPermission?username=" + username + "&permission=" + permission).Result; if (response.StatusCode == HttpStatusCode.OK) { Console.WriteLine("User has permission to create user."); } else { Console.WriteLine("User does not have permission to create user."); } // 创建新用户 string newUsername = "newuser"; string newPassword = "newpassword"; var content = new FormUrlEncodedContent(new[] { new KeyValuePair<string, string>("username", newUsername), new KeyValuePair<string, string>("password", newPassword) }); response = client.PostAsync(baseUrl + "CreateUser", content).Result; if (response.StatusCode == HttpStatusCode.Created) { Console.WriteLine("User created successfully."); } else { Console.WriteLine("Failed to create user."); } Console.ReadLine(); } } ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

e_lion

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值