Postgres:如何修复此创建查询?

如何解决Postgres:如何修复此创建查询?

我正在学习 Postgres 并尝试创建命令。但它给出了我无法理解的错误。 命令是:

//create a class to represent the user; Dapper will query the database and populate this class with information automatically
public class PosUser{
    public string FullName{get;set;}
    public string Designation{get;set;}
    public string IDPicture{get;set;}
}

private async void btnLogin_Click(object sender,EventArgs e)
{
    
    string conn = ConfigurationManager.ConnectionStrings["SystemDatabase"].ConnectionString;

    PosUser r;

    using(sqlconn = new sqlConnection(conn)){

        var query = "Select designation,fullname from UserAccount where Username = @Username and Password = @Password";

        var r = await conn.QuerySingleOrDefaultAsync<PosUser>(
            query,new {
                Username = txtUsername.Text,Password = txtPassword.Text.GetHashcode() //at least make some effort to obscure passwords in the db!
            }
        );
    }

    if(r == default){
        MessageBox.Show("User not Exist!","My POS",MessageBoxButtons.RetryCancel,MessageBoxIcon.Warning);
        return;
    }

    FrmWait waitfrm = new FrmWait();
    waitfrm.Show();

    if(r.Designation == "Cashier")
    {
        FrmPOS frm = new FrmPOS(); //if this does heavy io,move the io to a method you can call async
        await frm.DoIoInHereAsync(); //like this,or in an async form load
        frm.lblCashierName.Text = r.FullName;
        frm.Show();
    }
    else if (r.Designation == "Admin")
    {
        Form1 frm = new Form1(); //do not do io in here
        await frm.DoIoInHereAsync();
        frm.lblFullname.Text = r.FullName;
        frm.lblPosition.Text = r.Designation;
        byte[] imgBytes = Convert.FromBase64String(r.IDPicture);
        using (MemoryStream ms = new MemoryStream(imgBytes))
        {
            frm.pbuser.Image = Image.FromStream(ms);
        }
        FrmStockIn fsi = new FrmStockIn(); //do not do io in here
        await fsi.DoIoInHereAsync();
        fsi.txtStockinby.Text = r.FullName;
    }

    
    waitfrm.Close();

}

错误

CREATE TABLE Package (
    id smallint NOT NULL primary key,package_name varchar ( 45 ) not null,updated_at timestamp NULL DEFAULT CURRENT_TIMESTAMP,count integer(2) default null,pkg_desc varchar ( 45 ) not null,bucket_name varchar ( 45 ) not null,active bit(1),status INT(2) default null,Metadata JSONB,path varchar ( 45 ) default null,created_at timestamp NULL DEFAULT CURRENT_TIMESTAMP,run_status INT(5) 
)

解决方法

您使用 integer(2) 和 INT(2) 创建列。您不得添加该号码。整数是固定大小。你也应该决定一种方式来写它 试试这个:

CREATE TABLE Package (
    id smallint NOT NULL primary key,package_name varchar ( 45 ) not null,updated_at timestamp NULL DEFAULT CURRENT_TIMESTAMP,count INT default null,pkg_desc varchar ( 45 ) not null,bucket_name varchar ( 45 ) not null,active bit(1),status INT default null,metadata JSONB,path varchar ( 45 ) default null,created_at timestamp NULL DEFAULT CURRENT_TIMESTAMP,run_status INT
)
,

integerint 类型不接受参数。 你不能把它写成 integer(2),这会导致语法错误。

create table Package (
  id smallint not null primary key,package_name varchar(45) not null,updated_at timestamp null default current_timestamp,count integer default null,pkg_desc varchar(45) not null,bucket_name varchar(45) not null,status int default null,metadata jsonb,path varchar(45) default null,created_at timestamp null default current_timestamp,run_status int
)

官方文档应该有帮助: https://www.postgresql.org/docs/13/datatype.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?