Theo MSDN.
http ://msdn.microsoft.com/en-us/library/system.data.odbc.odbccommand.parameters.aspx
Khi CommandType được đặt thành Văn bản, Nhà cung cấp dữ liệu .NET Framework cho ODBC không hỗ trợ truyền các tham số được đặt tên cho câu lệnh SQL hoặc tới một thủ tục được lưu trữ được gọi bởi OdbcCommand. Trong một trong hai trường hợp này, hãy sử dụng trình giữ chỗ dấu chấm hỏi (?).
Vì vậy, truy vấn của bạn phải là:
string sql = "insert into klant (firstname) values (?)"
Nếu bạn có nhiều tham số, chúng được đặt theo thứ tự bạn thêm chúng.
Ngoài ra, tôi nghĩ rằng dòng
string firstname = txtfirstname.ToString();
nên đọc
string firstname = txtfirstname.Text();
Nhưng đó không phải là nguyên nhân gây ra vấn đề trước mắt của bạn.