You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

数据库正常但UsersTbl表不显示已创建用户问题求助

问题

用Visual Studio 2022开发项目已有数周,Web端创建用户后可正常登录,但查看数据库的UsersTbl表时,表里没有任何用户数据。优先寻求无需修改代码的解决办法,也可提供相关代码片段。

用户创建相关代码

string fileName = "SratimDB.mdf";
string tableName = "UsersTbl";
string sqlQuery = "select * from " + tableName + " where (username='" + username + "')";

DataTable table = Helper.ExecuteDataTable(fileName, sqlQuery);
int len = table.Rows.Count;
if (len > 0)
{
    msg += "user by that name already exists";
}
else
{
    string sqlInsert = "insert into " + tableName;
    sqlInsert += " (username, fName, lName, year,city,email,password, gender, prefix, phone, admin, more, movies, books, sports)";
    sqlInsert += " values (";
    sqlInsert += "N'" + username + "',";
    sqlInsert += "N'" + firstName + "',";
    sqlInsert += "N'" + lastName + "',";
    sqlInsert += "" + year + ",";//int
    sqlInsert += "N'" + city + "',";
    sqlInsert += "N'" + email + "',";
    sqlInsert += "'" + psswd + "',";
    sqlInsert += "'" + gender + "',";
    sqlInsert += "'" + prefix + "',";
    sqlInsert += "'" + phone + "',";
    sqlInsert += "'False' ,";//admin
    sqlInsert += "N'" + more + "',";

    if (hobby.Contains("movies"))
        sqlInsert += "'True' ,";//bool
    else
        sqlInsert += "'False' ,";

    if (hobby.Contains("books"))
        sqlInsert += "'True' ,";
    else
        sqlInsert += "'False' ,";

    if (hobby.Contains("sports"))
        sqlInsert += "'True' ";
    else
        sqlInsert += "'False' ";

    sqlInsert += ")";

    msg = msg + "<br>" + sqlInsert;
    Helper.DoQuery(fileName, sqlInsert);
    msg = msg + "<br> משתמש הוגדר בהצלחה<br>";
}
无需修改代码的排查方案
  • 检查数据库文件位置:Visual Studio默认会把项目中的MDF文件复制到输出目录(比如bin\Debug\netX.X或bin\Release\netX.X)。你手动查看的可能是项目根目录下的原数据库文件,而Web程序运行时连接的是输出目录里的副本。去输出目录找到SratimDB.mdf,用SQL Server对象资源管理器打开查看,应该能找到用户数据。
  • 验证连接字符串指向:确认项目配置文件(web.config或appsettings.json)中的数据库连接字符串,是否指向你正在查看的数据库文件路径。如果连接的是输出目录的文件,就去对应路径查看数据。
  • 检查事务提交情况:如果Helper.DoQuery方法内部使用了事务但未执行提交操作,会导致数据无法写入。不过你能正常登录,说明登录时读取的是有数据的库,所以这个可能性较低,但可以排查Helper类的实现。
代码优化提示(非必须,但建议)
  • 当前代码直接拼接SQL语句,存在严重的SQL注入风险,必须改用参数化查询避免攻击。
  • 密码以明文存储,极易泄露用户信息,应使用BCrypt、PBKDF2等哈希算法存储密码的哈希值,而非明文。

内容的提问来源于stack exchange,提问作者Yonatan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 22:17:38